在javascript中使用regex和replace()替换数组元素
Replacing array elements using regex and replace() in javascript
我对JavaScript有点陌生,我正在尝试使用与字符串匹配的regex来替换数组元素,下面是我尝试的代码
<button onclick="myFunction()">ClickHere</button>
<p id="demo"></p>
<script>
function myFunction() {
var abc = ["deno", "eno","pqr","lenovo"];
var i,text;
for(i = 0; i < abc.length; i++) {
text += abc[i].replace(/no/i, "po");
document.getElementById("demo").innerHTML = text;
}
}
</script>
我想用"po"替换数组元素,只要它在数组元素字符串中遇到"no"。
这就是我所期望的:
abc["depo","epo","pqr","lepovo"]
您可以对每个元素执行此操作:
for(var i=0; i < abc.length; i++) {
abc[i] = abc[i].replace('no', 'po');
}
或使用单行
abc = abc.map(function(x){return x.replace('no', 'po');});
或者使用带有"箭头功能"的一行:
abc = abc.map(x => x.replace('no', 'po'));
更改数组后,可以使用将其转换为字符串
var text = 'abc[';
for ( var i = 0 ; i < abc.length ; i++ ) {
text+=''"'+abc[i]+''"';
if ( i != abc.length - 1) {
text+=',';
}
}
text += ']';
测试:
function myFunction() {
var abc = ["deno", "eno","pqr","lenovo"];
abc = abc.map(x => x.replace('no', 'po')); // see other 2 alternatives above
var text = 'abc[';
for ( var i = 0 ; i < abc.length ; i++ ) {
text+=''"'+abc[i]+''"';
if ( i != abc.length - 1) {
text+=',';
}
}
text += ']';
document.getElementById("demo").innerHTML = text;
}
<button onclick="myFunction()">ClickHere</button>
<p id="demo"></p>
var i, text;
for(i = 0; i < abc.length, i++) {
text += abc[i].replace("no", "po");
}
console.log(text);
您的代码中需要进行三项更改:
- 用空字符串初始化文本。因为默认情况下它是未定义的
- 将abc[i].length更改为abc.length
-
将循环中abc[i].length后面的逗号替换为分号。
var abc = ["deno", "eno","pqr","lenovo"]; var i; var text = ""; for(i = 0; i < abc.length; i++) { text += abc[i].replace("no", "po"); }
相关文章:
- 替换变量时,JavaScript字符串replace()不起作用
- 如何在javascript中使用string.replace.将匹配字符串开头的两个不同表达式替换为null
- JavaScript .replace HTML 标记不会替换
- 将 HTML 标记替换为 Grunt-Replace
- 使用replace方法替换innerHTML以及在Javascript中不起作用的正则表达式
- 我想使用replace函数扫描json对象,然后用字符串替换匹配的单词
- `gulp-replace`只是替换部分目标,而不是全部目标
- JavaScript String.replace()中的错误,替换字符串“”$'&”;
- 在javascript中使用regex和replace()替换数组元素
- innerhtml.replace没有替换数组javascript中的所有单词
- JavaScript replace() 不替换包含文字 字符串的文本
- 为什么正则表达式或.replace()不使用CKEditor和Javascript替换脚本中的字符串
- string.replace(fromCharCode() , '') 不能替换字符
- JavaScript's replace()替换第二次出现的":"的正则表达式是什么?
- gulp-rev-replace替换子文件夹中的HTML文件
- 防止.replace替换已经被替换的字母
- 是否可以通过.replace替换字符串中的所有回车符?
- 使用javascript Replace替换p标签中的所有字符
- Javascript使用replace()替换字符
- 你能用this.queryText.replace替换两个不同的文本吗?