我想对像这样的字符串应用正则表达式word in $ctrl.words
想要查找字符串是否有in
和一个字符串之后和之前。
我尝试使用这个正则表达式[a-zA-Z\\d]+\\s+in\\s+[a-zA-Z\\d]+'
,但问题是来自$ctrl.words
的特殊字符,正则表达式总是返回false。结果我想要的是像这样的fruit in $ctrl.fruits
letter in $ctrl.alphabet
字符串
像fruit in $ctrl.fruits anything else
letter in $ctrl.alphabet anithing else
这样的字符串是假的
由于您需要匹配一个字符串,该字符串只包含两个用空格包围的in
分隔的非空白字符块,您可以使用
/^\S+\s+in\s+\S+$/
细节
^
- 字符串的开头\S+
- `+非空白字符\s+in\s+
- 一个包含1个或更多空格的in
子串\S+
- `+非空白字符$
- 字符串的结尾。JS演示:
var strs = ['fruit in $ctrl.fruits', 'letter in $ctrl.alphabet', 'fruit in $ctrl.fruits anything else', 'letter in $ctrl.alphabet anithing else' ];
var rx = /^\S+\s+in\s+\S+$/;
for (var s of strs) {
console.log(s, "=>", rx.test(s));
}