您的位置:首页 > 其它

关于正则表达式test、exec和RegExp.$1

2015-10-28 13:18 260 查看
今天看公司封装的js函数时,发现了RegExp.$1这个方法,表示之前从没见过,并且之前的test和exec用法也不是特别了解,就去网上查了一下,总结如下:

test:用的最多的一种了,用于检测是否存在匹配,返回true或false,简单又粗暴

/^\d{3}$/.test("123") //true
/^\d{3}$/.test("121233") //false


exec:匹配字符串中的第一个相匹配的内容,并返回一个数组,里面包含匹配内容和自匹配的内容

var x = /1[3,5,7,8]([0-9])([0-9]{8})/.exec("13187654321+13212345678")
console.log(x); //["13187654321", "1", "87654321", index: 0, input: "13187654321+13212345678"]其中的index属性声明的是匹配的文本。input是被检索的字符串


RegExp.$1: 其实就是指exec返回数组中的下标为1的值,同理有RegExp.$2-RegExp.$9,分别对应下标为2-9中的值

var x = /1[3,5,7,8]([0-9])([0-9]{8})/.exec("13187654321+13212345678");
console.log(RegExp.$1+"-"+RegExp.$2); //1-87654321


我们也可以这样用

"aaabbbccc".replace(/(\w)(\w{2})(\w{3})/,"$1-$2-$3-");//"a-aa-bbb-ccc"
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: