Цитата:
но с callback - тоже как-то не красиво, надеюсь кто-то поможет написать короче var t = 'Привет! большой текст Привет! большой текст. Привет! большой текст Привет! большой текст. Привет! большой текст Привет! большой текст.'; t = t.replace(/^[^\.]+/, function (s) { // сначала взял все до первой точки return s.replace(/Привет/g, 'Здрасте'); // в этом куске замена }); alert(t); |
Pavel M., самый нормальный вариант) Так что всё ок)
|
Можно заюзать такой вариант
function replaceText() { var objTextArea = document.getElementById("textarea"); objTextArea.value = replaceTestForFirstSentence(objTextArea.value); } function replaceTestForFirstSentence(str) { var re = /([\w\s]{0,}привет[\w\s]{0,}\.)([\w\s\.\?]{0,})/i; re.exec(str); var first = RegExp.$1; var rest = RegExp.$2; first = first.replace(/привет/gi, 'ЗДРАСТЕ'); return first + rest; } |
BoSO, он на порядок хуже варианта Pavel M..
Спросите у этого своего программиста, написал ли он сам такую регулярку) Если да - выложите, даже интересно) |
to trikadin
абсолютно согласен, вариант от Pavel M. самый крутой! может у кого еще какие будут??? |
Цитата:
Цитата:
|
Цитата:
|
На тексте из второго примера можно и одной регуляркой обойтись
var t = 'Привет! большой текст Привет! большой текст. Привет! большой текст Привет! большой текст.'; alert(t.replace(/Привет(?=[^.]*\..+)/g,'Здрасте')) Только толку никакого) |
Aetae, ну понятно, но хочется-то универсальности)
Хотя, может, задание в этом и состояло) |
Часовой пояс GMT +3, время: 14:53. |