您好,欢迎访问一九零五行业门户网

javascript-正则表达式

from:
测试正则的网站:
修饰符:
g:global全文搜索,不添加,搜索到第一个匹配停止。
i:ignore case 忽略大小写,默认大小写敏感。
m:multiple lines 多行搜索。
lastindex:当前表达式匹配内容的最后一个字符的下一个位置
source:正则表达式的文本字符串
正则表达式有2种基本字符类型组成:
原义文本字符(比如:abc)
元字符(比如:\b)。元字符是正则表达式中有特殊含义的非字母字符 (.*+?^.|\(){}[])
元字符:
\t:水平制表符
\v:垂直制表符
\n:换行符
\r:回车符
\0:空字符
\f:换页符
字符类:
[abc]:构建一个简单的类(比如:'a1b2c3d4'.replace(/[abc]/g,'x') =》x1x2x3d4)
[^abc]:取反
范围类:
[a-z]:从a到z的任意字符,包含a和z。(比如:'a1b2c3d4aa'.replace(/[a-z]/g,'x') =》x1x2x3x4xx)
[a-za-z]:在[]组成的类内部可以连写的。
[a,z]:分割('12345678'.replace(/[1,3]/g,'a') =》a2a45678)
预定义类:
.:除了回车符和换行符之外的所有字符([^\r\n])
\d:数字字符([0-9])
\d:非数字字符([^0-9])
\s:空白符([\t\n\x0b\f\r])
\s:非空白符([^\t\n\x0b\f\r] )
\w:单词字符,包含字符、数字、下划线([a-za-z_0-9])
\w:非单词字符([^a-za-z_0-9 ])
边界匹配字符:
^:以xxx开始('@123@abc@a'.replace(/^@./g,'x') =》x23@abc@a)
$:以xxx结束('@123@abc@a'.replace(/@.$/g,'x') =》@123@abcx)
\b:单词边界
\b:非单词边界
量词:
?:出现0次或1次
+:出现1次或多次
*:出现0次或多次
{n}:出现n次
{n,m}:出现n到m次
{n,}:至少出现n次
贪婪模式:正则表达式会尽可能多的匹配,直到匹配失败。('12345678'.replace(/\d{3,6}/g,'a') =》a78)
非贪婪模式:尽可能少的匹配。在量词后面加上?即可。('12345678'.replace(/\d{3,6}?/g,'a') =》aa78)
分组:
使用()可以达到分组的功能,使量词作用于分组('a1b2c3d4'.replace(/(\w\d){3}/g,'x') =》xd4)
或|('a1b2c3d4'.replace(/(a1|b2)/g,'x') =》xxc3d4)
反向引用('2017-05-06'.replace(/(\d{4})-(\d{2})-(\d{2})/g,'$2/$3/$1') =》05/06/2017)
忽略分组:不希望捕获某些分组,只需要在分组内加上?:就可以
前瞻:在正则表达式匹配到规则的时候,向前检查是否符合断言,后顾方向相反,js不支持后顾。
正向前瞻:exp(?=assert)('a2*3'.replace(/\w(?=\d)/g,'x') =》x2*3)
 负向前瞻:exp(?!assert)
正向后顾:exp(?<=assert),js不支持。
负向后顾:erp((? test(str):用于测试字符串参数中,是否存在匹配正则表达式模式的字符串。(var reg1 = /\w/; reg1.test('a');//true)
exec(str):使用正则表达式模式对字符串执行搜索,并将更新全局regexp对象的属性以反映匹配结果。
如果没有匹配的文本则返回null,否则返回一个结果数组:index 声明匹配文本的第一个字符的位置,input 存放呗检索的字符串string
以上就是javascript-正则表达式的详细内容。
其它类似信息

推荐信息