Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 21.12.2015, 21:27
Аспирант
Отправить личное сообщение для snovapavel Посмотреть профиль Найти все сообщения от snovapavel
 
Регистрация: 08.03.2015
Сообщений: 78

Замена по требованию
Добрый день, друзья!

Пытаюсь сделать замену в тексте по регулярным выражениям если стоят определённые галочки. Например, если стоит галочка «Заменить всех Вась» то в исходном тексте заменяются все Васи, а если «Заменить всех Петь», то заменяются также все Пети. В общем, подключение определённого выражения по требованию.

Накропал пока вот что, но это не работает..:

<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

Где я ошибся? Подскажите пожалуйста...
Ответить с цитированием
  #2 (permalink)  
Старый 21.12.2015, 21:43
gbb gbb вне форума
Интересующийся
Посмотреть профиль Найти все сообщения от gbb
 
Регистрация: 20.12.2015
Сообщений: 17

.replace(/Петя/g, "<a href='#'>Петя</a>");

Вот тут скорей всего. То что ты вызываешь, эквивалентно .replace, вызванном в глобальном контексте и тут скорей всего выскакивает ошибка. делай
concretElement.innerHTML = concretElement.innerHTML.replace(...)

либо concretElement.value, в зависимости от того, что там у тебя

Последний раз редактировалось gbb, 21.12.2015 в 21:47.
Ответить с цитированием
  #3 (permalink)  
Старый 21.12.2015, 21:57
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

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)
    })
});
Ответить с цитированием
  #4 (permalink)  
Старый 21.12.2015, 22:05
gbb gbb вне форума
Интересующийся
Посмотреть профиль Найти все сообщения от gbb
 
Регистрация: 20.12.2015
Сообщений: 17

Кстати, вспомнился забавный факт. Есть языки, где действительно можно так сделать.
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 -- просто функция) -- одним словом Ъ-ООП, и, вуаля
Ответить с цитированием
  #5 (permalink)  
Старый 22.12.2015, 08:13
Аспирант
Отправить личное сообщение для snovapavel Посмотреть профиль Найти все сообщения от snovapavel
 
Регистрация: 08.03.2015
Сообщений: 78

Огромное спасибо!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Замена тегов Kost-iv Events/DOM/Window 4 01.11.2015 17:12
Замена слова посредством Java-script Assassin Общие вопросы Javascript 33 11.11.2014 22:23
Замена изображения zarobo1 Общие вопросы Javascript 1 30.08.2013 08:59
Замена запятой на точки для проверки цифр с дробью Telnet Общие вопросы Javascript 7 22.07.2013 11:33
Регулярное выражение, замена ссылки к файлу на имя файла libinstyle Events/DOM/Window 2 19.07.2010 17:50