查找包含特定字母和特殊字符的所有单词

时间:2014-09-02 17:24:32

标签: javascript jquery regex

假设我有一个由包含特殊字符的单词组成的列表:

one
<two></two>
three#
$four
etc.

我想查找列表中包含特定字母的所有单词,
我试过用

var myList = "<one></one> $two three#";
var myRegex = /\bMYWORD[^\b]*?\b/gi;
alert(myList.match(myRegex));

但这对特殊字符不起作用..

DEMO

不幸的是,我是javascript的新手,我不知道创建列表的最佳方式是什么 并单独列出单词..

2 个答案:

答案 0 :(得分:1)

因此,基于您的输入,这可以解决问题:

var myList = "<one></one> $two three#";
var items = myList.split(' ');  

$('#myInput').on('input',function(){
    var matches = [];
    for(var i = 0; i < items.length; i++) {
        if(items[i].indexOf(this.value) > -1)
            matches.push(items[i]);
    }


    $('#myDiv').text(matches.join(','));
});

this你想要的是什么?

答案 1 :(得分:0)

如果我理解正确,您只需要从查询字符串中转义所有特殊字符,以便RegEx引擎不会将它们视为这样。这样的事情应该有效:

var myList = "<one></one> $two three#";
var query = "$two";
var myRegex = new RegEx(query.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"));
alert(myList.match(myRegex));

提供转义机制的the answer的提示。

这是你需要的吗?

PD:我还建议使用console代替警报。