从 Text Js 中搜索特定单词,包括特殊字符

Search a specific word from Text Js , Including Special Characters

我有一个数组,我循环逐字提取并比较它们以在大文本中找到任何匹配项。

  var myString="I know the languages  C, C# and JAVA"
  var languages=['JAVA','C','Angular','C++','Python','C#'];
  for (var i=0;i<languages.length;i++){
      var myPattern = new RegExp('(\w*'+languages[i]+'\w*)','gi');
      var matches = myString.match(myPattern);
      if (matches != null)
      {
          console.log(languages[i]);
      }
  }

当我到达 C# 或 C++ 时正则表达式抛出错误? 任何提取这两个以及其他内容的东西都将不胜感激。 注意我还需要转义其他特殊字符如(',','.','|');

不需要正则表达式,这是一个简单的 indexOf 操作,甚至比正则表达式的结果 "better" - 例如您还可以指明字符串在文本中的位置。

const myString="I know the languages  C, C# and JAVA";
const languages=['JAVA','C','Angular','C++','Python','C#'];

languages.forEach(lang => {
  let x;
  if ((x = myString.indexOf(lang)) > -1) {
    console.log(`Found ${lang} at position ${x}`);
  }
});

也可以使用 String includes() 方法。 includes() 方法判断一个字符串是否包含指定字符串的字符。如果字符串包含字符,则此方法 returns true ,如果不包含 false 。注意这个方法是case sensitive.

var myString = 'I know the languages  C, C# and JAVA',
    languages = [ 'JAVA','C','Angular','C++','Python','C#' ];

for ( var i = 0; i < languages.length; i++ ) {
    if ( myString.includes( languages[ i ] ) ) console.log( languages[ i ] )
}