2013-09-02 3 views
0

У меня есть код jquery, чтобы заглавные буквы ввода первой буквы в текстовое поле, и у меня есть другой код, чтобы запретить вводить числа в том же текстовом поле.

Проблема заключается в том, если я использую один, другие не работает, и я надеялся, что кто-то может сказать мне, как совместить оба с одной .replace()

Я использую следующий код для заглавного ввода букв:Невозможно использовать два .replace() для одного элемента

$(this).val(txt.replace(/^(.)|\s(.)/g, function($1){ return $1.toUpperCase(); })); 

И я использую этот код, чтобы запретить номера в моем текстовом поле:

$(this).val($(this).val().replace(/[^a-z]/g,'')); 



Спасибо!

+0

Вы пытались связать два вызова с 'replace()'? –

+0

Offtopic: Вы можете упростить свое регулярное выражение для заглавной буквы '/ \ b [a-z]/gi'. '\ b' означает границу слова, поэтому она будет соответствовать началу строки или прямо перед словом. – Barmar

ответ

1

Попробуйте переместить код в две функции, каждая из которых принимает строку и возвращает строку. Теперь вы можете объединить два в любом порядке:

$(this).val(disallowNumbers(capitalize($(this).val()))); 

[EXIT] Я установил скрипку здесь: http://jsfiddle.net/DnMN3/1/

Исходный код имел проблему: Позволяя только строчные буквы в «запретить цифры ", заглавные буквы были проглочены. Таким образом, код заменил a на A, который тогда больше не разрешался.

+0

Хорошее решение, но, вероятно, должно быть в другом порядке. Таким образом, он будет использовать это слово после удаления любых запрещенных номеров в начале. – Barmar

+0

hmm .. не работает. можете ли вы предоставить скрипку? –

+0

@surfsup: Можете ли вы предоставить скрипку, которая не работает, поэтому я могу исправить? –

0

Просто подтолкните два вместе? Я не понимаю, в чем проблема?

$(this).val($(this).val().replace(/[^a-z]/g,'').replace(/^(.)|\s(.)/g, function($1){ return $1.toUpperCase(); })); 
//   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 
+0

Когда я использую этот код, я не могу ввести более одного символа, и я не могу вводить заглавные буквы. –

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