针对特定模式的JavaScript正则表达式

时间:2018-03-01 18:15:33

标签: javascript regex

我想对像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

1 个答案:

答案 0 :(得分:2)

由于您需要匹配一个字符串,该字符串只包含两个用空格包围的in分隔的非空白字符块,您可以使用

/^\S+\s+in\s+\S+$/

请参阅regex demo

<强>详情

  • ^ - 字符串开头
  • \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));
}