Javascript 替换字符串中的几个不同元素并返回它
我有一个字符串,我想换一些单词。 我编写下一个函数。如果我的字符串中只有一个要更改的单词,则此工作正常。但如果这句话不止一个,它只会最后改变Javascript 替换字符串中的几个不同元素并返回它,javascript,jquery,Javascript,Jquery,我有一个字符串,我想换一些单词。 我编写下一个函数。如果我的字符串中只有一个要更改的单词,则此工作正常。但如果这句话不止一个,它只会最后改变 <div class="container"> <div id="main-arr">How are you my friend?</div> <div id="main-arr__last"></div> </div> $(document).ready(function(
<div class="container">
<div id="main-arr">How are you my friend?</div>
<div id="main-arr__last"></div>
</div>
$(document).ready(function() {
var sometext = $('#main-arr').text();
var someArr = sometext.split(' ');
for ( var i = 0; i < someArr.length; i++ ) {
if ( someArr[i] === 'you' || someArr[i] === 'he' || someArr[i] === 'she' ) {
var newArr1 = someArr.slice(0, i);
var newArr2 = someArr.slice(i + 1, someArr.length);
newArr1 = newArr1.join(' ');
newArr2 = newArr2.join(' ');
var word = 'error!';
console.log(newArr1);
console.log(newArr2);
$('#main-arr__last').html(newArr1 + '<span class="red">' + ' ' + word + ' ' + '</span>' + newArr2);
}
}
你好吗,我的朋友?
$(文档).ready(函数(){
var sometext=$('#main arr').text();
var someArr=sometext.split(“”);
for(var i=0;i
})) 该函数不仅仅改变最后一个字。问题是,每次替换一个单词时,也会替换
\main-arr\u last
中的html
这里有一个更好的解决方案:
$(document).ready(function() {
var sometext = $('#main-arr').text();
sometext = replaceAll(sometext, ' you ', ' error! ');
sometext = replaceAll(sometext, ' he ', ' error! ');
sometext = replaceAll(sometext, ' she ', ' error! ');
var someHtml = toHtml(sometext, 'red');
$('#main-arr__last').html(someHtml);
});
function replaceAll(str, search, replacement){
return str.replace(new RegExp(search, 'g'), replacement);
}
function toHtml(str, clazz){
return replaceAll(str, 'error!', '<span class="' + clazz + '">error!</span>');
}
$(文档).ready(函数(){
var sometext=$('#main arr').text();
sometext=replaceAll(sometext'you','error!');
sometext=replaceAll(sometext'he','error!');
sometext=replaceAll(sometext'she','error!');
var someHtml=toHtml(sometext,'red');
$('#main-arr_ulast').html(someHtml);
});
函数replaceAll(str、搜索、替换){
返回str.replace(新的RegExp(搜索'g'),replacement);
}
函数toHtml(str,clazz){
返回replaceAll(str,'error!','error!');
}
首先,我们实现一个函数replaceAll
来替换文本中出现的所有单词,然后我们将文本替换为所有单词,在我们的例子中,您、他和她都被error!替换
然后我们将
函数实现为HTML
,以包含所有“错误!”span中的单词,已确定的类作为参数传递。该函数不会仅更改最后一个单词。问题是,每次替换一个单词时,也会替换\main-arr\u last
中的html
这里有一个更好的解决方案:
$(document).ready(function() {
var sometext = $('#main-arr').text();
sometext = replaceAll(sometext, ' you ', ' error! ');
sometext = replaceAll(sometext, ' he ', ' error! ');
sometext = replaceAll(sometext, ' she ', ' error! ');
var someHtml = toHtml(sometext, 'red');
$('#main-arr__last').html(someHtml);
});
function replaceAll(str, search, replacement){
return str.replace(new RegExp(search, 'g'), replacement);
}
function toHtml(str, clazz){
return replaceAll(str, 'error!', '<span class="' + clazz + '">error!</span>');
}
$(文档).ready(函数(){
var sometext=$('#main arr').text();
sometext=replaceAll(sometext'you','error!');
sometext=replaceAll(sometext'he','error!');
sometext=replaceAll(sometext'she','error!');
var someHtml=toHtml(sometext,'red');
$('#main-arr_ulast').html(someHtml);
});
函数replaceAll(str、搜索、替换){
返回str.replace(新的RegExp(搜索'g'),replacement);
}
函数toHtml(str,clazz){
返回replaceAll(str,'error!','error!');
}
首先,我们实现一个函数replaceAll
来替换文本中出现的所有单词,然后我们将文本替换为所有单词,在我们的例子中,您、他和她都被error!替换
然后我们将
函数实现为HTML
,以包含所有“错误!”span中的word,其中已确定的类作为参数传递。为什么不使用regex和replace函数?为什么不使用regex和replace函数?