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

问题描述 投票:1回答:1

我想对像这样的字符串应用正则表达式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这样的字符串是假的

javascript regex
1个回答
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));
}
© www.soinside.com 2019 - 2024. All rights reserved.