创建方式
1.对象显示创建
var regexp=new RegExp("js","ig')
2.字面量
var regexp=/js/ig
正则表达式特殊字符
\d [0-9] 匹配数字
\D [^0-9] 匹配非数字字符
[A-Za-z] 匹配大小写字符
\s 匹配空白字符
\S 匹配非空字符
\w [A-Za-z0-9_] 匹配字母数字下划线
\W 匹配非数字字母字符
方法
1.test,返回的是布尔值
var str="cfdsJS *(&JSjs 888js"
if(regexp.test(str)){
//do something
}
2.exec,返回数组
var regexp=new RegExp('(ds)+(j+s)','ig')
var str="cfdsJS *(&JSjs 888js"
var arr=regexp.exec(str)
console.log(arr.length);
console.log(arr);
while(arr){
document.writeln(arr+" "+"<br>")
document.writeln("next match at "+regexp.lastIndex+"<br>")
arr=regexp.exec(str)
}
由于设置了全局匹配,把RegExp中的lastIndex属性设置为在每一次连续调用中找到的的上一个模式的位置,因此每次调用exec都会查找下一个模式。当没有匹配时,返回null
image.png
exec方法每次只返回当前匹配项和所有带圆括号的子字符串。
正则表达式中的圆括号匹配字符串,并记住匹配结果,将其保存在数组中
2....$9 保存圆括号所匹配的子字符串
var regexp=/(\w*)-*(\w*)/
var str="java--script"
var result=str.replace(regexp,"$2+$1")
console.log(result); //script+java
网友评论