Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 查找包含特定字母和特殊字符的所有单词_Javascript_Jquery_Regex - Fatal编程技术网

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

Javascript 查找包含特定字母和特殊字符的所有单词,javascript,jquery,regex,Javascript,Jquery,Regex,假设我有一个由包含特殊字符的单词组成的列表: one <two></two> three# $four etc. 1 三# 四美元 等 我想查找列表中包含特定字母的所有单词, 我试着用 var myList = "<one></one> $two three#"; var myRegex = /\bMYWORD[^\b]*?\b/gi; alert(myList.match(myRegex)); var myList=“$两三”; var m

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

one
<two></two>
three#
$four
etc.
1
三#
四美元
等
我想查找列表中包含特定字母的所有单词,
我试着用

var myList = "<one></one> $two three#";
var myRegex = /\bMYWORD[^\b]*?\b/gi;
alert(myList.match(myRegex));
var myList=“$两三”;
var myRegex=/\bMYWORD[^\b]*?\b/gi;
警报(myList.match(myRegex));
但这不适用于特殊字符

不幸的是,我是javascript新手,不知道创建列表的最佳方法是什么

要分离列表中的单词,请根据您的输入执行以下操作:

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(','));
});
var myList=“$两三”;
var items=myList.split(“”);
$('#myInput')。在('input',function()上{
var匹配=[];
对于(变量i=0;i-1)
匹配。推送(项目[i]);
}
$('#myDiv').text(matches.join(','));
});

这是你想要的吗

如果我理解正确,您只需要从查询字符串中转义所有特殊字符,这样正则表达式引擎就不会将它们视为特殊字符。像这样的方法应该会奏效:

var myList = "<one></one> $two three#";
var query = "$two";
var myRegex = new RegEx(query.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"));
alert(myList.match(myRegex));
var myList=“$两三”;
var query=“$two”;
var myRegex=new RegEx(query.replace(/[-[\]{}()*+?,\\\^$\\\\\\\s]/g,“\\$&”);
警报(myList.match(myRegex));
提供逃逸机制的帽尖

这是你需要的吗


PD:我还建议使用
控制台
而不是警报。

您要匹配哪些特定字母?如果可能,我想匹配任何字母或字符。您只是想将该列表放入数组吗?为什么不直接拆分换行符上的文本呢?您真正想要的最终结果是什么?在输入的情况下,这个函数/方法的输出应该是什么?@DavidThomas我想要的最终结果是使用文本输入来选择要匹配的值,并且能够匹配包含特殊字符的单词,但是只有当我键入“$”时,$two才会出现记得我说过的关于清晰度的内容吗?更新了我的答案以处理部分匹配。谢谢,这正是我想要的。非常感谢!:)