У меня есть текст с шаблонами, например,% text% внутри. Как я могу получить эти шаблоны в javascript, чтобы обернуть их в промежутки и изменить цвет?Соответствие шаблону в тексте javascript
Спасибо!
У меня есть текст с шаблонами, например,% text% внутри. Как я могу получить эти шаблоны в javascript, чтобы обернуть их в промежутки и изменить цвет?Соответствие шаблону в тексте javascript
Спасибо!
Используйте Regex
if (String.match(/text/gi)) {
//wrap span around String and change color of CSS
}
Я думаю, что он пытается использовать '%' как разделитель «токенов». Например, в строке: 'Hi,% Jack%. Добро пожаловать на сайт. ', Он заменит'% Jack% 'на' Jack '. Ваш подход прав, просто нужно включить соответствие '%', я считаю. – crush
my bad Я думал, что это подстановочный знак, как в SQL. У MikeM есть правильная идея. – aug
Если шаблон между %
с всегда чистым текстом (без пробелов и т.д.), вы можете сделать что-то вроде этого:
text = text.replace(/%\w*%/g, function (txt) {
return '<span style="color: red">' + txt.substring(1, txt.length-1) + '</span>';
});
Хотя сопоставление с образцом MikeM является далеко вперед, я оставляю этот ответ, чтобы показать, как вы также можете использовать функцию для манипулирования совпадающей строкой или даже получить какой-то другой материал в зависимости от соответствия.
Может также легко добавить поддержку чисел. Я думаю, главное - не допускать пробелов. В противном случае: 'Hello,% Jack%, что% ваша профессия%?' Может соответствовать: 'Jack',' what is' и 'your profession'. – crush
Зачем использовать '.substring()', когда вы можете использовать группы захвата? 'text.replace (/% (\ w *)%/gi, ' $ 1');' Также, –
'\ w' содержит числа. – MikeM
var str = 'Some text with patterns like %text% inside.';
str = str.replace(/%([^%]+)%/g, '<span style="color: blue">$1</span>');
// Some text with patterns like <span style="color: blue">text</span> inside.
Это неясно. Можете ли вы быть более конкретными, чем 'like% text%'? – crush
@crush, он может также содержать числа 'like% text2%'. Это помогает? – gbtimmon
Каково значение '%' в строке? Является ли эта часть строки, или она должна быть подстановочным символом? Вы только говорите, что хотите что-то, что окружено '%' для соответствия? – crush