XRegExp заменить

Я пытаюсь выполнить некоторые манипуляции со строками для некоторых слов, которые могут содержать или не содержать символы Юникода.

Вот мой код:

var regex = XRegExp("(\\P{L}+)", "gui");
var s = 'no sea demásiado tarde';
var ret = XRegExp.replace(s, regex, "<span>$1</span>");

console.log(ret);
<script src="http://cdnjs.cloudflare.com/ajax/libs/xregexp/3.1.1/xregexp-all.min.js"></script>

Но слова не обертываются тегами span, как ожидалось. Как так?

Спасибо

1 ответ

Решение

Потому что вы заключаете не письма с \\P{L}+ как \P{L} соответствует любому символу, кроме буквы Юникод.

использование "\\p{L}+" шаблон и заменить <span>$&</span> ($& обратная ссылка означает весь матч).

var regex = XRegExp("\\p{L}+", "gui");
var s = 'no sea demásiado tarde';
var ret = XRegExp.replace(s, regex, "<span>$&</span>");

console.log(ret);
<script src="http://cdnjs.cloudflare.com/ajax/libs/xregexp/3.1.1/xregexp-all.min.js"></script>

Другие вопросы по тегам