У меня есть простой regex reply - user предоставляет sind String и заменить string. Я использую OriginalString.Replace (New Regexp (Find, 'Gi'), заменить) , и он работает в основном хорошо. Недавно я заметил, что один из краевых случаев, когда строка замены применяется дважды, когда строка find < /code> совпадает с всеми.
const first = 'bat, batman, manbat'.replace(new RegExp('bat', 'gi'), 'cat');
console.log('first: ', first);
// => 'cat, catman, mancat' // Every bat is replaced with cat, thanks to the global switch
const second = "bat, batman, manbat".replace(new RegExp('(.*)', 'gi'), '$1, cat');
console.log('second: ', second);
// => 'bat, batman, manbat, cat, cat' // here, the 'cat' is replaced twice because of 'g'< /code>
< /div>
< /div>
< /p>
Почему «кошка» применяется дважды для второго результата? Я бы ожидал, что это будет просто Bat, Batman, Manbat, Cat
- я просто хочу добавить, Cat к нескольким случаям строк, но все они имеют, Cat дважды в конце. Как это исправить?
У меня есть простой regex reply - user предоставляет sind String и заменить string. Я использую OriginalString.Replace (New Regexp (Find, 'Gi'), заменить) , и он работает в основном хорошо. Недавно я заметил, что один из краевых случаев, когда строка замены применяется дважды, когда строка find < /code> совпадает с всеми.[code]const first = 'bat, batman, manbat'.replace(new RegExp('bat', 'gi'), 'cat'); console.log('first: ', first); // => 'cat, catman, mancat' // Every bat is replaced with cat, thanks to the global switch
const second = "bat, batman, manbat".replace(new RegExp('(.*)', 'gi'), '$1, cat'); console.log('second: ', second); // => 'bat, batman, manbat, cat, cat' // here, the 'cat' is replaced twice because of 'g'< /code> < /div> < /div> < /p> Почему «кошка» применяется дважды для второго результата? Я бы ожидал, что это будет просто Bat, Batman, Manbat, Cat [/code] - я просто хочу добавить, Cat к нескольким случаям строк, но все они имеют, Cat дважды в конце. Как это исправить?