微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

\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})$分别定义了两个组,可以直接从匹配的字符串中提取出区号和本地号码:

rush:js;"> var re = /^(\d{3})-(\d{3,8})$/; re.exec('010-12345'); // ['010-12345','010','12345'] re.exec('010 12345'); // null 

(?:) 分组不想被捕获的时候使用,可以提高程序执行速度,非捕获型分组不会干扰捕获型分组编号。

用正则表达式切分字符串比用固定的字符更灵活

rush:js;"> 'a,b;; c d'.split(/[\s\,\;]+/); // ['a','b','c','d']  

RegExp对象的test()方法用于测试给定的字符串是否符合条件。

rush:js;"> var re = /^\d{3}\-\d{3,8}$/; re.test('010-12345'); // true re.test('010-1234x'); // false

需要特别指出的是,正则匹配认是贪婪匹配,也就是匹配尽可能多的字符。

rush:js;"> var re = /^(\d+)(0*)$/; re.exec('102300'); // ['102300','102300','']

由于\d+采用贪婪匹配,直接把后面的0全部匹配了,结果0*只能匹配空字符串了。

加个?就可以让\d+采用非贪婪匹配:

rush:js;"> var re = /^(\d+?)(0*)$/; re.exec('102300'); // ['102300','1023','00']

特殊标志

g标志 ,表示全局匹配

i标志,表示忽略大小写

m标志,表示执行多行匹配

需要使用转义符' \ '的15个特殊字符

rush:js;"> / \ [ ] ( ) { } ? + * | . ^ $

总结

以上所述是小编给大家介绍的JavaScript中正则表达式判断匹配规则及常用方法。编程之家 jb51.cc 收集整理的教程希望能对你有所帮助,如果觉得编程之家不错,可分享给好友!感谢支持

原文地址:https://www.jb51.cc/js/37391.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐