使用正则表达式替换数组中的匹配元素:无效字符

Replace matching elements in array using regular expressions: invalid character

本文关键字:元素 无效 字符 正则表达式 替换 数组      更新时间:2023-09-26
var input = [paul, Paula, george];
  var newReg = 'paula?'i
for(var text in input) {
    if (newReg.test(text) == true) {
         input[input.indexOf(text)] = george
       }
    }
console.log(input)

我不知道我的代码出了什么问题。它应该把paul和Paula改成george,但当我运行它时,它说有一个非法字符

反斜杠(''(是Javascript(以及许多其他类似C语言(中的转义字符。这意味着当Javascript遇到反斜杠时,它会尝试转义以下字符。例如,''n是换行符(而不是后面跟着字母n的反斜杠(。

因此,这就是导致错误的原因,您需要将'paula?'i替换为/paula?/i

您需要在正则表达式模式中将'替换为/

您应该将字符串包装在引号"

您需要正确匹配您的数组,val只是单词的索引,而不是单词本身。

var input = ["paul", "Paula", "george"];
var newReg = /paula?/i;
for (var val in input) {
    if (newReg.test(input[val]) == true) {
         input[input.indexOf(input[val])] = "george";
    }
}
console.log(input);

JSFIDDLE