java与js的正则表达式

正则表达式是用来校验文本框中所输入的值是否匹配。一般在swing里面和js脚本校验中用得蛮多的。

喜欢上正则是在一次做小数点的验证上,就是要判断输入的值的长度在5位,可以有小数点。如果不用正则,那么我得判断小数点是不是只有一个,小数点是不是在第一位,是不是在最后一位,那些情况都要排除的。当然,这样做一下,可以练习自己对string里面的方法的熟练度,还有一个好处就是给用户的提示也蛮多的。不过,个人觉得在判断这个还不如用正则,因为正则一句话就搞定,那个地方也没必要搞那么麻烦。以下就说说正则吧!

在正则里面有11个字符被保留作特殊用途,它们分别是[ ] / ^ $ . | ? * + ( )。

[]:它是表示一个字符集,比如[0-9a-zA-Z],其中0-9,a-z,A-Z,这三者是或的关系,如果是且的关系的话,得加上其他的符号,这里就不展开了,因为没怎么碰到过,作为一个开发人员,只需要了解基本的正则就行了,正则这一块深入下去蛮难的。

/:转义字符,像/d,在java中String str="/d",这样是错误的,因为"/d"根本就没有,所以还要转义一次,而在js里面是不用的,下面会提到。

补充:java中的带"/"的,下面这些是不需要再转义的

/t代表Tab

/r代表回车符

 

/n 代表换行符
^:表示起始,举个例子,^[0-9]表示以数字开头,但是当^放在“[]”里面时,意思就不一样了,[^0-9]表示非数字
$:表示结尾,有需要时可以加上。。
.:表示匹配除换行符以外的任何字符。。(个人觉得没啥用,当然既然提出来了,也有适合它用的场合)
|:表达式中“|”表示选择。例如:cat|dog|mouse|fish
?:重复0次或1次
*:重复0次或多次
+:重复1次或多次,(在实际的运用中,*和+用得还是蛮多的,当然+也有用到)
():是表示分组,可能我们对一个字符重复很简单,但是当多个字符重复时,这个就有用了。比如(/d{1,3}/.){3},中间的{}是表示限定个数。
{n}重复 n
{n,}重复 n次或更多次
{n,m}重复 nm次,包括n,m
匹配中文字符的正则表达式: [/u4e00-/u9fa5],曾经看到一个帖子说,这个在某个场合下不适用,不过一般在java里面或者js里面是能够判断的
以下就举一个例子吧:
在java里面有这样两个类:
Pattern,Matcher,大家可以去看一下相关的用法,我就举一个简单的例子吧,或者说我题目做得太少,一直都没怎么用过这两个类。

下面谈谈js里面的正则吧:
表达式的写法:
var   re = / pattern / [ flags ],还有另外一种写法:
var   re = new RegExp(" pattern ", [ " flags " ] )

re是一个变量。。pattern是具体的正则,类似于在java中的reg,但是有所不同,比如在java中匹配数字,必须要写成“//d”,而在js里面只需要一个/就够了,即写成//d/就OK了。。

flags有两个:一个是全局变量,“g”,另一个是“i”。g是表示全局变量,而i是表示忽略大小写。注意,这个是可选的,不是非要写上去的。

全局变量在多个文本框验证时会出错,代码如下:
 

我测试是这样的,第一个框输入“12”,第二个框也输入“12”,结果是“true”,"false"。也就是说如果用了g全局变量,他一旦找到正确的,下面就不匹配了!解决这个问题当然很简单,只需要去掉"g",不写它就好了嘛。。
当然如果只是测试一个的话,建议大家写上这个“g”比较好。。

总结:其实正则的用法都差不多,只要熟悉规则,再多练就可以了!







 

 

 

 

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值