JavaScript

正则表达式

2020-08-10  本文已影响0人  埼玉的头发

创建方法

1.利用RegExp对象来创建: var reg = new RegExp(/123/);

2.利用字面量创建:var reg = /123/

字符类

字符集用[]包裹

var rg = /[abc]/ 表示包含a或b或c

 console.log(/[abc]/.test('a'));        //t

 console.log(/[abc]/.test('b'));   //t

 console.log(/[abc]/.test('c'));  //t

 console.log(/[abc]/.test('abc'));  //t

 console.log(/[abc]/.test('cba')); //t

 console.log(/[abc]/.test('decba')); //t 只要字符串中包含在正则表达式字符集[ ]范围内的字符,就为true,而不是匹配第一个字符。

console.log(/[abc]/.test('d')); // f  字符集中没有d,为false

  // 负向类

  // 只要有一个不是数字就为true,匹配字符中的非数字字符

  console.log(/[^0-9]/.test(1));

  console.log(/[^0-9]/.test('123a'));

  console.log(/[^0-9]/.exec('123a')); //a

  console.log(/[^0-9]/.test('a'));

  // 只要有一个不是小写字母就为true,匹配字符中的非字母字符

  console.log(/[^a-z]/.test('a123'));

  console.log(/[^a-z]/.exec('a9123')); //9

边界符:

^从字符串开头进行匹配

$从字符串结尾进行匹配

^$都存在可以理解为从开头匹配到尾部全都得符合要求,否则不满足

var rg = /^123$/ 表示精准匹配123

var rg = /^[abc]$/ 表示只能包含abc中的一个

量词符

量词用{}包裹

{n} 出现n次

{n,} 出现n次以上

{n,m} 出现n到m次

* 出现0次或多次

+ 出现1次或多次

?出现0次或1次

预定义类

\d 匹配数字[0-9]

\D 匹配非数字[^0-9]

 \w 匹配任意的字母数字下划线[a-zA-z0-9_]

\W 匹配除了任意的字母数字下划线的字符[^a-zA-z0-9_],注意^在字符集[ ]中才表示'非'

\s 匹配空格(换行符 制表符 空格符),相当于[\t\r\n\v\f]

\S 匹配非空格字符,相当于[^\t\r\n\v\f], 注意^在字符集[ ]中才表示'非'

\b 单词边界

\B 非单词边界

[\u4e00-\u9fa5]  匹配中文

正则表达式后

g 全局匹配

i 不区分大小写

m 多行匹配

括号总结

大括号:包裹量词符号

中括号:包裹字符集

小括号:提高优先级  //   /^123{3}$/ 它表示3要重复出现3次 而不是123重复3次

详情可参考菜鸟教程:https://www.runoob.com/regexp/regexp-tutorial.html



正则表达式分组

内部分组:\1 \2

外部分组:$1 $2

上一篇 下一篇

猜你喜欢

热点阅读