JavaScript найти и заменить символ между указанными символами - PullRequest
1 голос
/ 01 апреля 2020

Я пытаюсь заменить все [space] на - между __tt и tt__

Я мог бы заменить пробел во всей строке следующим регулярным выражением.

var str = document.getElementById('tt').value;
str = str.replace(/(?<=__tt.*) (?=.*tt__)/g, '-');
console.log(str);
textarea {
  width: 400px;
  min-height: 100px;
}
<textarea id="tt">This is a long text __tt where i want 
to replace
some text tt__ between some character
</textarea>

Есть ли способ сделать замену только между тегами __tt и tt__ ???

Ответы [ 3 ]

3 голосов
/ 01 апреля 2020

Вы можете взглянуть в будущее и посмотреть в будущее.

var str = 'This is a long text __tt where i want to replace some text tt__ between some character';

str = str.replace(/(?<=__tt.*) (?=.*tt__)/g, '-');

console.log(str);
2 голосов
/ 01 апреля 2020

Без обходных путей, которые еще не полностью поддерживаются всеми браузерами, вы также можете использовать замену, используя функцию обратного вызова только для выбранного соответствия.

str = str.replace(/__tt.*?tt__/g, m => m.replace(/ /g, "-"));

var str = 'This is a long text __tt where i want to replace some text tt__ between some character';
str = str.replace(/__tt.*?tt__/g, m => m.replace(/ /g, "-"));
console.log(str);

Примечание

Если вы хотите использовать один дефис при замене нескольких последовательных пробелов, вы можете повторить пробел 1 или более раз, используя + или сопоставляя 1 или более пробельных символов, используя \s+

. В обновленном вопросе получите текст элемента:

var elm = document.getElementById("tt");
elm.textContent = elm.textContent.replace(/__tt[^]*?tt__/g, m => m.replace(/ +/g, "-"));
<textarea id="tt" rows="4" cols="50">This is a long text __tt where i want
to replace
some text tt__ between some character
</textarea>
1 голос
/ 01 апреля 2020

можете попробовать

let str = 'This is a long text __tt where i want to replace some text tt__ between some character';
str = str.replace(/__tt.*?tt__/g, (item) => item.replace(/ /g, "-"));
console.log(str);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...