【JavaScript】正则表达式相关的API

JavaScript里正则常用API

一、5个常用方法:

1. test

reg.test(str); // 返回是否包含正则 true/false

var str = "abcdefghijkl3mnop2qts";
/\d/.test(str); // true

2. match

str.match(reg); // 一般正则表达式加g,会返回包含所有匹配项的数组

var str = "abcdefghijkl3mnop2qts";
str.match(/\d/g); // ["3", "2"]

3. search

str.search(reg); // 返回第一条匹配的索引位置

var str = "abcdefghijkl3mnop2qts";
str.search(/\d/); // 12

4. replace

str.replace(str/reg, replacement); // 不改变原字符串,返回新字符串

5. exec

在循环中反复地调用 exec() 方法是唯一一种获得全局模式的完整模式匹配信息的方法。

var reg = /\d/g;
var str = "abcdefghijkl3mnop2qts";

reg.exec(str); // ["3", index: 12, input: "abcdefghijkl3mnop2qts", groups: undefined]
// 可以使用 reg.lastIndex 判断目前的执行进度
reg.lastIndex; // 13
reg.exec(str); // ["2", index: 17, input: "abcdefghijkl3mnop2qts", groups: undefined]
reg.exec(str); // null
// 之后循环往复

二、3个进阶概念

1. 捕获组

// capture group
var reg = /(\d+)/g;
var str = "abcd3fgh55jy";
str.replace(reg, "($1)"); // 会为数字加上括号

2. 反向引用

// \1是对捕获组的引用
var reg = /(\d+)\1/g;
var str = "abcd3fgh55jy";
str.match(reg); // 这次只匹配到了55

3. 前瞻

// (?=)正向前瞻
// (?!)负向前瞻
var reg = /(\d+)(?=\1)/g;
var str = "abcd3fgh55jy";
str.match(reg); // 这次只匹配到了55,但只捕获5
全部评论

相关推荐

07-17 11:50
门头沟学院 Java
投递腾讯等公司7个岗位
点赞 评论 收藏
分享
07-20 21:57
已编辑
门头沟学院 Java
点赞 评论 收藏
分享
炫哥_:为什么都读硕士了?项目还是网上的项目(真心发问)
最后再改一次简历
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务