Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/423.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_Regex - Fatal编程技术网

如何使用正则表达式在Javascript中传递字符串值数组

如何使用正则表达式在Javascript中传递字符串值数组,javascript,regex,Javascript,Regex,我有以下代码,可以很好地处理一个值,即excel。下面的代码使用highlightWithinTextarea jquery插件在文本区域中突出显示或标记关键字“excel” var skills = /excel/gi; $('textarea').highlightWithinTextarea({ highlight: skills }); 现在我想通过正则表达式传授多种技能。我试过下面的代码,但它没有像上面的例子那样用一个单词和regexp(即/excel/gi)突出显示或标记

我有以下代码,可以很好地处理一个值,即excel。下面的代码使用highlightWithinTextarea jquery插件在文本区域中突出显示或标记关键字“excel”

var skills = /excel/gi;

$('textarea').highlightWithinTextarea({
    highlight: skills
});
现在我想通过正则表达式传授多种技能。我试过下面的代码,但它没有像上面的例子那样用一个单词和regexp(即/excel/gi)突出显示或标记文本区域中的关键字

var str =  ["excel","net","software","Microsoft"] ;

var skills = new RegExp(str, "gi");

for(var i=0; i<skills.length; i++)

$('textarea').highlightWithinTextarea({
    highlight: skills
});
var str=[“excel”、“net”、“software”、“Microsoft”];
var skills=新的RegExp(str,“gi”);

对于(var i=0;i在数组中的所有元素之间交替放置一个

const pattern = new RegExp(str.join('|'), 'gi');
$('textarea').highlightWithinTextarea({
    highlight: pattern
});
这会给你一个像

/excel|net|software|Microsoft/gi

(另外,由于您的
str
实际上是一个数组,而不是一个字符串,您可能会发现将其命名为
arrOfWordsToHighlight
,或类似的名称会减少混淆-精确的变量名可以提高代码可读性并有助于减少错误)

太好了,它可以工作了!感谢您的时间和建议。