var pattern=/ javascript / ig; //文本中是否包含 javascriptvarstring="this is javascript"; document.write(pattern.test(string));//文本中有javascript,正则表达式与文本匹配,返回true
var pattern=/\d{3,6}/;
varstring="123456789";
document.write(string.replace(pattern,"X"));
//返回的结果为:X789,//根据正则表达式的定义,匹配字符串中3至6个字符,贪婪模式选择取最大值更多的匹配,1-6都被替换
非贪婪模式:尽可能少的匹配,也就是说,一组字符串中,前面有匹配成功的,那么久不回再向后搜索匹配项。
在量词后加上“ ? ”表示非贪婪模式
var pattern=/\d{3,6}?/;
varstring="123456789";
document.write(string.replace(pattern,"X"));
//返回结果:X456789,//只匹配到最小值,当3匹配成功后,就不会再往后搜索匹配项,所以到3为止
RegExp.$1………9 用于存储捕获组的构造函数属性
varstring="this is 'javascript'";
var pattern=/'(.*)'/;
document.write(string.replace(pattern,"<strong>$1</strong>"));
//()圆括号内的捕获组就是$1,此返回结果将‘javascript’加粗//不管如何修改捕获组里的内容,结果都会跟随修改而改变,不需要单独再修改
使用捕获组反向引用
var string="2017-07-23";
var pattern=/(\d{4})-(\d{2})-(\d{2})/;
document.write(string.replace(pattern,"$3/$2/$1"));
//返回结果:23/07/2017
//在正则表达式中“(\d{4})”表示$1,“(\d{2})”表示$2,“(\d{2})”表示$3
忽略捕获组
不希望捕获某些分组,只需要在分组内加上“ ?: ”
varstring="2017-07-23";
var pattern=/(\d{4})-(\d{2})-(?:\d{2})/;
document.write(string.replace(pattern,"$3/$2/$1"));
//返回的结果为 $3/07/2017//忽略了捕获组$3