Javascript或Jquery匹配字符串内容中的var字符串并以var string开头

时间:2014-07-22 03:47:21

标签: jquery pattern-matching

我有变量:

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)。

任何帮助都可以。

2 个答案:

答案 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()选择器,因此您可以考虑重命名它。