Из текста «myWord Word» я хочу получить «myWord Replaced», используя replace с функцией и аргументом соответствия. Итак, я написал следующий код, но получаю «myReplaced Word» вместо «myWord Replaced». Не могли бы вы помочь мне, так как я плохо понимаю механизм аргумента совпадения. Спасибо вам всем.
<div id="myView"></div>
<script>
vText = "myWord Word";
vWord = "Word";
vText = vText.replace('Word', function(match) {
if (match == vWord) {
return 'Replaced';
} else {
return match;
}
})
document.getElementById("myView").innerHTML = vText;
</script>
3 ответа
Вы можете использовать регулярное выражение для проверки совпадения всего слова и замены слова на желаемое слово «Заменено».
<div id="myView"></div>
<script>
vText = "myWord Word";
vWord = "Word";
var regex = new RegExp('\\b' + vWord + '\\b', "g");
var vText = ("myWord Word").replace(regex,"Replaced");
document.getElementById("myView").innerHTML = vText;
</script>
Вы можете использовать переменную счетчика для подсчета ваших совпадений, а затем заменить определенное слово заданным совпадением следующим образом:
<div id="myView"></div>
<script>
let vText = "myWord Word";
let vWord = "Word";
let count = 0;
vText = vText.replace(/Word/g, function(match) {
count++;
if (match == vWord && count == 2) {
return 'Replaced';
} else {
return match;
}
})
document.getElementById("myView").innerHTML = vText;
</script>
На основе ответа https://stackoverflow.com/users/3321784/anita и https://stackoverflow.com/users/669576/johnny-mopp , он отлично работает, когда исходный код становится:
<div id="myView"></div>
<script>
vText = "myWord Word";
vWord = "Word";
var regex = new RegExp('\\b' + vWord + '\\b', "g");
vText = vText.replace(regex, function(match) {
if (match == vWord) {
return 'Replaced';
} else {
return match;
}
})
document.getElementById("myView").innerHTML = vText;
</script>
Похожие вопросы
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript / JS) и его различных диалектах / реализациях (кроме ActionScript). Включите все соответствующие теги в свой вопрос; например, [node.js], [jquery], [json] и т. д.