javascript - 用于测试带有尾随点的精确单词的正则表达式

标签 javascript regex

我有一个动态变量,需要与源进行匹配。

Source: 'text clientLogin padding float';
search: '.clientLog'

搜索文本有一个前导点('.'),在比较时应将其省略。

对于上面的例子我应该:

  1. 获取“.”(点)之后的搜索部分
  2. 检查搜索文本的来源,即 clientLog,如果整个单词匹配,则返回 true。(在本例中,它应该返回 false,因为源具有 clientLogin)。<

我正在尝试使用正则表达式来实现此目的

var regEx = new RegExp(k); // k is the search text
 if(regEx.test(classNames)){....

上面的代码在 jQuery.each 中,k 是正在迭代的对象的键。我不知道如何省略 '.'但请阅读某处以实现单词边界以实现精确匹配。

请提出建议。

谢谢

最佳答案

试试这个:

var
source = 'text clientLogin padding float',
search = '.clientLog',
pattern = '\\b'+search.replace(/^\./, '')+'\\b',
result = new RegExp(pattern).test(source);

注释:

  • 我们去掉开头的“.”构建模式时从搜索字符串中获取
  • 我们使用单词边界标记 (\b)。这有助于确保“login”不被视为“log”的有效匹配,例如,就像您的情况一样。
  • 双重转义 (\\b) 是必要的,因为我们将模式构建为字符串 - 这对于馈送到 RegExp 构造函数的动态模式是必要的.

关于javascript - 用于测试带有尾随点的精确单词的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39249586/

相关文章:

javascript - 谷歌地图地理编码器问题

javascript - Stylus 是否支持变量数组?

java - 使用 Java 正则表达式提取包含 URL 的特定行

php - 未检测到正则表达式preg_quote符号

asp.net - ASP.NET 中 ValidationExpression 中“的转义字符

javascript - WHILE 循环内的 GM_xmlhttpRequest

javascript - 未捕获的 TypeError : data. Push 不是一个函数。如何解决此推送错误?

javascript - 如何通过 jquery 使用 div id 删除 div 内的特定 html 标签及其内容?

java - Java 中的正则表达式模式

javascript - regex.test() 卡住网页