使用正则表达式替换数组中的匹配元素:无效字符
Replace matching elements in array using regular expressions: invalid character
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
相关文章:
- ReactJS - 元素类型无效错误
- 输入元素模式属性的Javascript正则表达式在reFiddle上有效,但在页面上无效
- 未捕获错误:不变冲突:元素类型无效:应为字符串
- 未捕获的不变冲突:元素类型无效(react、webpack、循环导入)
- addClass”;输入无效”;输入dos't显示,直到我在输入元素外部单击为止
- React:未捕获的不变量冲突:ReactDOM.render():无效的组件元素
- ReactJS的dropzone元素无效
- 函数调用者无效元素
- 未捕获的语法错误:无法在“元素”上设置“innerHTML”属性:提供的标记是无效的 XML
- 脚本 600:此操作的目标元素无效.(仅限 IE)
- TinyMCE没有阻止无效元素
- 显示:元素的none/block在Firefox中有效,在Safari或Chrome中无效
- 在IE中使用.innerHTML添加选项元素无效
- 追加到空元素无效
- jQuery-更改时多选元素无效
- IE 9出错-'SCRIPT600:此操作的目标元素无效
- SCRIPT 600错误:此操作的目标元素无效
- 通过id获取元素无效
- 使用正则表达式替换数组中的匹配元素:无效字符
- jQuery height()函数对元素无效