Замена по требованию
Добрый день, друзья!
Пытаюсь сделать замену в тексте по регулярным выражениям если стоят определённые галочки. Например, если стоит галочка «Заменить всех Вась» то в исходном тексте заменяются все Васи, а если «Заменить всех Петь», то заменяются также все Пети. В общем, подключение определённого выражения по требованию. Накропал пока вот что, но это не работает..:
<form>
<textarea name="input" id="input" cols="60" rows="10" placeholder="Исходный текст"></textarea>
<br>
<button id="proceed">Заменить</button>
<button type="reset">Очистить</button>
<br>
<textarea name="output" id="output" cols="60" rows="10" placeholder="Результат"></textarea>
</form>
<form>
<label for="checkbox1">
<input type="checkbox" id="checkbox1" name="checkbox">Обернуть всех Петь</label>
<label for="checkbox2">
<input type="checkbox" id="checkbox2" name="checkbox">Обернуть всех Вась</label>
</form>
$(function() {
$("#proceed").click(function(event){
event.preventDefault();
$("#input").each(function(){
$("#output").val($(this).val()
if($("input:checkbox[id='checkbox1']").is(":checked")) {
.replace(/Петя/g, "<a href='#'>Петя</a>");
}
if($("input:checkbox[id='checkbox2']").is(":checked")) {
.replace(/Вася/g, "<a href='#'>Вася</a>");
}
);
});
});
});
Вот пример на jsfiddle.net Где я ошибся? Подскажите пожалуйста... |
.replace(/Петя/g, "<a href='#'>Петя</a>");
Вот тут скорей всего. То что ты вызываешь, эквивалентно .replace, вызванном в глобальном контексте и тут скорей всего выскакивает ошибка. делай concretElement.innerHTML = concretElement.innerHTML.replace(...) либо concretElement.value, в зависимости от того, что там у тебя |
snovapavel,
$(function() {
$("#proceed").click(function(event) {
event.preventDefault();
var val = $("#input").val();
if ($("input:checkbox[id='checkbox1']").is(":checked")) val = val.replace(/Петя/g, "<a href='#'>Петя</a>");
if ($("input:checkbox[id='checkbox2']").is(":checked")) val = val.replace(/Вася/g, "<a href='#'>Вася</a>");
$("#output").val(val)
})
});
|
Кстати, вспомнился забавный факт. Есть языки, где действительно можно так сделать.
o := Object clone do(
flag := true
string := "foo bar baz" asMutable
)
o do(
if(flag, string replaceSeq("bar", "moo"))
)
o string print
#>>>> foo moo baz
:) строки -- первоклассные муттабельные объекты + безкостыльное динамическое связывание + все есть выражение (if -- просто функция) -- одним словом Ъ-ООП, и, вуаля:) |
Огромное спасибо!
|
| Часовой пояс GMT +3, время: 00:32. |