当前位置:嗨网首页>书籍在线阅读

04-使用正则表达式进行搜索

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

17.3 使用正则表达式进行搜索

有了正则表达式之后,当需要在字符串中进行搜索时,就有了更多选择 。

为了理解不同的替换方式,先稍微预习一下正则表达式元语言。在这里使用静态字符串就太无趣了,所以用了动态表达式 /\w{3.}/ig ,它会匹配所有包含三个或三个以上字母的单词(不区分大小写)。现在先不用急着去理解这个表达式,到了本章后面自然会理解。先来看一些可用的搜索方法:

const input = "As I was going to Saint Ives";
const re = /\w{3,}/ig;
// 从字符串(input)开始
input.match(re);        // ["was", "going", "Saint", "Ives"]
input.search(re);       // 5 (首次在下标5中出现了满足表达式的单词)
// 从正则表达式开始(re)
re.test(input);         // true (input至少包含一个三个字母的单词)
re.exec(input);         // ["was"] (第一个匹配)
re.exec(input);         // ["going"] (exec会“记住”它所在的位置)
re.exec(input);         // ["Saint"]
re.exec(input);         // ["Ives"]
re.exec(input);         // null – 匹配完毕
// 注意,所有这些方法都可以直接使用字面量语法
input.match(/\w{3,}/ig);
input.search(/\w{3,}/ig);
/\w{3,}/ig.test(input);
/\w{3,}/ig.exec(input);
// ...

在这些方法中,提供信息最多的是 RegExp.prototype.exec ,但读者会发现实际中用的最少的也是它。作者自己用的最多的是 String.prototype.matchRegExp.prototype.test