javascript - 使用 Javascript 或 jquery 正则表达式验证一个字符串是否包含另一个字符串

标签 javascript jquery regex

我正在构建一个简单的搜索,其中查询字符串可以包含通配符“*”。搜索词可以如下所示:

  • 动物
  • 阿尼*
  • *马尔
  • an*al

如果单词是“animal”,以上所有内容都应返回 true。

如何在 JS/jquery 中完成此操作?

非常感谢您的帮助。 RNV

最佳答案

字符串上的匹配很简单:

var mystring = "This is my string";
var myregex = /*some regex*/
var results = mystring.match(myregex); // you can also write the regex directly as the argument of the match method, without using any variable.

所以在你的情况下你可以:

var mystring = "animal";
var myregex = new RegExp(inputQuery.replace(/\*/g, '.*'), 'gi'); // gi stands for 'global' and 'ignorecase' when applying the regex
var results = mystring.match(myregex);

请注意,.* 匹配零个或多个(来自 * 通配符)字符、任何字符(来自 .)< br/> 如果要匹配零个或多个字母、数字或下划线,请使用 \w*,如果要匹配一个或多个,请使用 \w+,如果要匹配特定数量的字母,请使用 \w{x} (\w{3} 恰好匹配 3 个字母)。

关于javascript - 使用 Javascript 或 jquery 正则表达式验证一个字符串是否包含另一个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31741818/

相关文章:

javascript - jQuery 代码被忽略

javascript - 为尚未单击的元素添加阴影

sql - Oracle 正则表达式替换多次出现的用逗号包围的字符串

php - 如何分解搜索查询

javascript - 如何判断一个对象是否在只有一个属性的数组中?

javascript - magento 结帐页面中的总体国家/地区电话号码验证

javascript - 文本选择(准备使用剪贴板操作)

javascript - 如何用空格替换单词和数字组合?

javascript - 为什么当我尝试在 html 的文本区域内显示文本时,它会在一行中显示所有内容?

javascript - 使用 jQuery 选择子文本