2012-03-07 2 views
0

В этом previous question я спросил, как удалить родительские знаки и текст внутри них. Получил это:Удаление скобок в поле ввода, текст между ними и пространство перед ними?

$(this).val($(this).val().replace(/\(.+\)/, '')); 

Так вот: food (454) становится этим: food

Это прекрасно работает, но теперь я хотел бы не только удалить скобки и текст между ними, но и удалить пробел перед скобками ,

В приведенном выше примере, пространство я говорю о том, будет пространство между буквой d и (

Как изменить код так, что он может достичь этого?

+0

Добавить пробел в выражение. –

+0

@ Планы гонок на орбите Ду! Просто понял это. – alexchenco

ответ

2

Нет необходимости в jquery!

this.value = this.value.replace(/\s+\(.+?\)/g, ''); 

Live demo

Кредит @AnthonyGrist!

+0

Спасибо! Извините, я забыл упомянуть, что есть и этот сценарий: 'tag1 tag1 (23)' тоже. Прямо сейчас, ваш код делает это: 'tag1', и я ищу это:' tag1 tag1'. – alexchenco

+2

Вам нужно избежать скобок в регулярном выражении с помощью '\\' (обратная косая черта). –

+0

@ AnthonyGrist. Ты прав! но это не работает, почему? см. [скрипка] (http://jsfiddle.net/8VS9B/5/) – gdoron

0
$.trim($(this).val($(this).val().replace(/\(.+\)/, ''))); 
+0

Странно, по какой-то причине я все еще получаю это пространство в этом поле ввода. – alexchenco

+1

Почему вы используете jquery, чтобы получить значение ?! 'this.value' принесет вам значение! – gdoron

+1

@ubercooluk Если вы хотите добавить дополнительный код к своему ответу, отредактируйте ответ, а не помещайте плохо форматированный код в комментарий. –

Смежные вопросы