Замена в регулярном выражении подстрок
Подскажите - как решаются подобные классы задач:
С помощью регулярного выражения в совпадающем фрагменте найти и заменить текст, соответствующий n-ной скобке. Например: в строке "1285423808063" в соответствии с регулярным выражением /[^3](8)(0)[6-8]/ заменить 8 на * и 0 на + чтобы получилось "128542380*+63" |
Rust,
var str = "1285423808063";
str = str.replace(/(380)(\d{2})/, "$1*+");
alert(str);
|
Нужно общее решение. С частными всё понятно
|
Цитата:
|
Для понимания, нужно дописать
function(v,s) {
return v.replace(s, function(f) {
...
});
}
так, чтобы при любой строке v и любом регулярном выражении s текст, соответствующий n-ной скобке обрамлялся тегами:<span class=Pn>$n</span> |
Цитата:
|
Rust,
возможно вы хотели так
var str = "1285423808063";
function r(v,s,n) {
return v.replace(s, function(f) {
return --n ? f : '"'+f+'"'
});
}
str = r(str, /\d{2}/g,3);
alert(str);
|
строка:
Ну что сказать? -12.85 - это отрицательное число, а 0.86 - положительное регулярное выражение: /[^-\d.](\d+)(\.\d+)?/g Результат: Ну что сказать? -12.85 - это отрицательное число, а <span class=P1>0</span><span class=P2>.86</span> - положительное |
Повторяю. Строка и регулярка могут быть любой.
Обработку пишу я. Мне нужен общий метод. |
Цитата:
|
| Часовой пояс GMT +3, время: 15:52. |