2014-12-15 2 views
1

Я ищу, чтобы добавить (.) до допустимых символов в моей функции ниже (.):Добавление DOT для регулярного выражения

$(id).bind('keypress', function(event) { 
    var regex = new RegExp("[()a-zA-Z0-9 ?,/-]"); 
    var key = String.fromCharCode(!event.charCode ? event.which : event.charCode); 
    if (!regex.test(key)) { 
     event.preventDefault(); 
     return false; 
    } 
}); 

Однако, каждый раз, когда я добавляю его дело доходит до с ошибка:

Uncaught SyntaxError: Invalid regular expression: /[()a-zA-Z0-9 ?,/-.]/: Range out of order in character class

Я попытался добавить только (.) & также попытался добавить его (\.), но все та же ошибка.

Пожалуйста, можете ли вы помочь, где мне нужно добавить это (.)?

ответ

7

Обратите внимание, что - должны быть либо в начале или в конце класса символов или должен быть замаскирована обратной косой чертой \, так как это указывает на диапазон как в a-z

/[()a-zA-Z0-9 ?,/.-]/ 

Кроме того, если динамический regex требуется, просто используйте литерал регулярного выражения, как указано выше, если нет, вам придется удалить разделители / / и использовать фактическое регулярное выражение [()a-zA-Z0-9 ?,/.-] как String, которое может использоваться в конструкторе RegExp.

+1

Спасибо, Это работает отлично и спасибо за объяснение. Будет отмечен как ответ после истечения срока. – Josh90

+0

@ Josh90 ах! Рад помочь :) –

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