我有变量:
var string_content = "This is a stackoverflow sentence pattern match";
var keyword = "mat";
我需要检查'关键字'匹配string_content中以" mat"。
开头的任何字符串结果:1匹配(匹配〜匹配)
如果关键字是"溢出",那么它不应该生成结果,因为没有匹配的每个单词都以"溢出"来自string_content。
我重新使用了其他帖子中的代码 -
$.expr[":"].contains = $.expr.createPseudo(function(keyword) {
return function( string_content ) {
return $(string_content).text().toUpperCase().indexOf(keyword.toUpperCase()) >= 0;
};
});
但是它返回一个结果,但不是模式的开头(即keyword = mat)。
任何帮助都可以。
答案 0 :(得分:1)
您想要使用的是正则表达式,您可以通过以下链接阅读http://www.w3schools.com/js/js_regexp.asp
这是一个SO链接,可以帮助您Javascript Regex match any word that starts with '#' in a string
答案 1 :(得分:1)
试试这个(demo):
$.expr[":"].contains = $.expr.createPseudo(function (keyword) {
return function (string_content) {
return new RegExp( '\\b' + keyword, 'i' ).test( $(string_content).text() );
};
});
我认为命名函数contains
将覆盖内置的jQuery :contains()
选择器,因此您可以考虑重命名它。