我正在构建一个简单的搜索,其中查询字符串可以包含通配符“*”。搜索词可以如下所示:
- 动物
- 阿尼*
- *马尔
- 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/