首页 > 语言 > JavaScript > 正文

JavaScript中正则表达式判断匹配规则及常用方法

2024-05-06 15:13:27
字体:
来源:转载
供稿:网友

字符串是编程时涉及到的最多的一种数据结构,对字符串进行操作的需求几乎无处不在。 正则表达式是一种用来匹配字符串的强有力的武器。它的设计思想是用一种描述性的语言来给字符串定义一个规则,凡是符合规则的字符串,我们就认为它“匹配”了。 

/d可以匹配一个数字                 '00/d'可以匹配'007' ,'/d/d/d'可以匹配'010'
/w可以匹配一个字母或数字      '/w/w'可以匹配'js'
/s可以匹配一个空格(也包括Tab等空白符)
/DWS都是表示匹配与小写字母相反的匹配关系
/数字n表示指向第n个分组捕获到的字符串文本的一个引用,能够再次被匹配       /(/d+)(0*)/1/可以匹配‘22300223'
.可以匹配任意字符                  'js.'可以匹配'jsp'、'jss'、'js!' 

正则表达式量词:

*表示任意个字符(包括0个)
+表示至少一个字符
?表示0个或1个字符
{n}表示n个字符
{n,m}表示n-m个字符 

A|B可以匹配A或B       (J|j)ava(S|s)cript可以匹配'JavaScript'、'Javascript'、'javaScript'或者'javascript'

^表示行的开头          ^/d表示必须以数字开头

$表示行的结束          /d$表示必须以数字结束

[]表示范围,字符类                          

[a-zA-Z/_/$][0-9a-zA-Z/_/$]*可以匹配由字母或下划线、$开头,后接任意个由一个数字、字母或者下划线、$组成的字符串,也就是JavaScript允许的变量名

[a-zA-Z/_/$][0-9a-zA-Z/_/$]{0, 19}更精确地限制了变量的长度是1-20个字符(前面1个字符+后面最多19个字符)

[] 中的^ 表示排除某个字符     [^#?] 表示除了?和#的所有字符     

()表示捕获型分组,可以将匹配的字符串进行分组,提取子串。

如果正则表达式中定义了组,就可以在RegExp对象上用exec()方法提取出子串来。

exec()匹配成功后,返回一个Array,第一个元素是正则表达式匹配到的整个字符串,后面的字符串表示匹配成功的子串。

exec()匹配失败时返回null。

^(/d{3})-(/d{3,8})$分别定义了两个组,可以直接从匹配的字符串中提取出区号和本地号码:

var re = /^(/d{3})-(/d{3,8})$/;re.exec('010-12345'); // ['010-12345', '010', '12345']re.exec('010 12345'); // null 
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选