表行开头
表行结尾
中括号中使用^表排除,比如以上表达式表示除5-9以外的任意字符。
英文中的句号,也就是一个点,使用来匹配任意字符的简便写法。
注:当元字符出现在小括号内时表示枚举。
[1-9.] 匹配1到9的数字或是一个.。
或字符,表示或关系,比如(S|s)teven
表可选项,表允许出现这样的字符。出现一次或0次。
4(th)? july?表之前的元素出现一次或多次。
表之前的元素出现0次或多次。
符号含义?出现0次或一次+出现一次或多次*出现0次或多次{5,9}量词,出现限定次数,这里指出现五次到九次使用\1,\2…这种引用方式匹配字符串中被括号引用的值。
比如:使用正则表达式([0-9])\1去匹配23-11--43-32匹配结果为11因为反向引用的值必须与括号内实际的值相同也就是说括号的值虽然可以从0到9多选,但是引用时这个值必须与括号内的值相同匹配一个字边界,即字与空格间的位置。
匹配一个非字边界,等价于[^\b]
等价于[0-9],能匹配所有的Unicode数字。
非数字字符,等价于[^\d]。
匹配所有单词中的字符。等价于[a-zA-Z0-9_]
非单词字符,等价于[^\w]。
匹配所有空白字符(不可见字符),等价于[·\f\n\r\t\v]
\f 匹配一个换页符。等价于\x0c和\cL。\n 匹配一个换行符。等价于\x0a和\cJ。\r 匹配一个回车符。等价于\x0d和\cM。\t 匹配一个制表符。等价于\x09和\cI。\v 匹配一个垂直制表符。等价于\x0b和\cK。匹配所有非空白字符,等价于[^\s]
用于创建一个正则表达式的构造函数。
(1)参数是字符串的正则构造写法
let regex = new RegExp('xyz', 'i'); // equals let regex = /xyz/i;(2)参数是正则表达式的正则构造写法
let regex = new RegExp(/xyz/i); // equals let regex = /xyz/i;(3)重复定义修饰符会覆盖前边定义的修饰符
let regex = new RegExp(/abc/ig, 'i'); // equals let regex = new RegExp(/abc/i);用于检索字符串中是否包含指定的字符串。
基本格式:.match()
let str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'; let regexp = /[A-E]/gi; let matches_array = str.match(regexp); // ['A', 'B', 'C', 'D', 'E', 'a', 'b', 'c', 'd', 'e'] 括号中可以是一个正则表达式也可以是一个字符串。返回的结果可能为null、一个对象(匹配到一个结果)或是一个数组(匹配到多个结果)。用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。
基本格式:<String>.replace(<RegExp>,<replacer>)
返回结果:被替换后的字符串。
let str='abc123!!!'.replace(/([^\d]*)(\d*)([^\w]*)/,$1$2$3+'222'); //"abc123!!!222" //$1、$2、$3分别代表括号中匹配到的内容 变量名代表的值 1− 1 − 9对应括号中匹配到的第n个字符串$$插入一个 “$”。$&插入匹配的子串。$`插入当前匹配的子串左边的内容。$’插入当前匹配的子串右边的内容。$n假如第一个参数是 RegExp对象,并且 n 是个小于100的非负整数,那么插入第 n 个括号匹配的字符串。检测字符串中是否有匹配检到的结果,找到一个或多个正则表达式的匹配。
基本格式:str.match(regexp)
返回值:匹配到的结果,可以是一个对象(匹配到的一个结果hu或是null),或是一个数组(匹配到的多个结果)。
let str="1 plus 2 equal 3" str.match(/\d+/g); //1,2,3 str.match('equal'); //["equal", index: 9, input: "1 plus 2 equal 3", groups: undefined]使用圆括号进行组匹配。
const RE_DATE = /(\d{4})-(\d{2})-(\d{2})/; const matchObj = RE_DATE.exec('1999-12-31'); const year = matchObj[1]; // 1999 const month = matchObj[2]; // 12 const day = matchObj[3]; // 31用于返回正则表达式的修饰符。
// ES5 的 source 属性 // 返回正则表达式的正文 console.log(/abc/ig.source); // "abc" // ES6 的 flags 属性 // 返回正则表达式的修饰符 console.log(/abc/ig.flags); // 'gi'x只有在y前面才匹配,必须写成/x(?=y)/。比如,只匹配百分号之前的数字,要写成/\d+(?=%)/。
检测%前边的数字。 /\d+(?=%)/.exec('100% of US presidents have been male') // ["100"]x只有不在y前面才匹配,必须写成/x(?!y)/。比如,只匹配不在百分号之前的数字,要写成/\d+(?!%)/。
检测前边不是%的数字 /\d+(?!%)/.exec('inter 5%') // null