匹配单个字符
匹配纯文本
只是为了匹配一段纯文本,那么目的往往是确定其是否存在。似乎应该优先使用 RegExp.prototype.test()
方法,或者 String.prototype.search()
方法。前者返回一个表示是否匹配成功的布尔值;对于后者,如果匹配成功,则返回其在字符串中的位置下标(从0开始),否则返回 -1。
var str = 'some text for test, for test.';
var pattern = /for/;
console.log(str.search(pattern)); // 10
console.log(pattern.test(str)); // true
绝大多数正则表达式引擎的默认行为是只返回第一个匹配结果。尤其对于搜索型匹配,找到了一个,就没有必要再去找下一个了。如果是要进行文本替换,就不一样了。得使用标志(flags)来说明当前的匹配执行方式(全局,忽视大小写等等)。
添加g
(global)标识符后,连续两次执行pattern.exec(str)
:
var str = 'some text for test, for test.';
var pattern = /for/g;
console.log(pattern.exec(str)); // ["for", index: 10, input: "some text for test, for test."]
console.log(pattern.exec(str)); // ["for", index: 20, input: "some text for test, for test."]
匹配任意字符
.
可以匹配任意的字符、字母、数字以及.
本身。
像.
这样的字符就是元字符,因为它具有自身之外的更多含义。