关于正则表达式test、exec和RegExp.$1
2015-10-28 13:18
260 查看
今天看公司封装的js函数时,发现了RegExp.$1这个方法,表示之前从没见过,并且之前的test和exec用法也不是特别了解,就去网上查了一下,总结如下:
test:用的最多的一种了,用于检测是否存在匹配,返回true或false,简单又粗暴
exec:匹配字符串中的第一个相匹配的内容,并返回一个数组,里面包含匹配内容和自匹配的内容
RegExp.$1: 其实就是指exec返回数组中的下标为1的值,同理有RegExp.$2-RegExp.$9,分别对应下标为2-9中的值
我们也可以这样用
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"
相关文章推荐
- Deep Learning及NLP(自然语言处理)杂谈--第一部分
- css中margin-left与left的区别
- zabbix监控搭建以及客户端安装
- AOJ 0033
- BroadcastReceiver 广播的使用 (activity广播到fragment中,使用静态的没有成功,我就使用动态的 ,是可以的)
- SQL谜题(加减符号替代)
- 托尔斯泰
- Node.js 内存泄露 定位
- 动画(三)
- SPM - data analysis
- Linux 进阶 文件和文件系统的压缩和打包
- 人生三重界
- 引导滤波(guided image filtering)原理及C++实现
- js 去掉字符串前后空格
- 一个函数返回参数二进制中 1 的个数
- 转载:200多个js技巧代码
- 动画(二)
- 实现将一个字符串转化成对应的整形数字
- Redis 架构设计
- http://codeforces.com/contest/34