Регулярное выражение
Всем доброго времени суток!
Хочу реальзовать такое регулярное вырадение: Разрешено вводить только латиницу, цифры и нижнее подчеркивание( _ ), все остальное - ошибка. Рылся в инете ничего подходящего не нашел. Сам составить пробовал, не получилось. Пробовал так: var reg = new RegExp(/[0-9a-z_]+/i); return reg.test(text); //Не ругается на русские символы. Помогите плиз. Заранее благодарен. |
function tststr(text){ return text.replace(/[0-9a-z_]+/ig,'')==''; } var a="gggggggggggggggg"; alert(tststr(a)); var b="Не ругается на русские символы."; alert(tststr(b)); |
При вводе такой строки не ругается: "qwertew1ывап"
|
Цитата:
function tststr(text){ return text.replace(/[0-9a-z_]+/ig,'')==''; } var b="qwertew1ывап"; alert(tststr(b)); |
Благодарю.
Оказывается var pattern = new RegExp(/[0-9a-z_]+/ig); return pattern.test(text); и return text.replace(/[0-9a-z_]+/ig,'')==''; Работают по разному) |
OklickSpb,
Ну идея в том, что pattern.test проверяет на наличие в строке твоих символов, и при наличии хоть одного - выдает true А text.replace - удаляет все правильные символы - и оставляеь все неправильные(если есть) Для пользования в данном примере pattern.test в качестве RegExp нужно выбирать все лишние символы, русские и т.д, что посчитал излишним трудом... Хотя можно найти и иные варианты - так правильнее: function tststr(text){ var pattern = new RegExp(/[^0-9a-z_]+/ig); return !pattern.test(text); } var a="gggggggggggggggg"; alert(tststr(a)); var b="qwertew1ывап"; alert(tststr(b)); |
Понял, спасибо большое!)
|
/^[a-z\d_]{1,30}$/i.test('OklickSpb');
/^[a-z\d_]{1,30}$/i.test('Hello, world!'); ^ - начало строки $ - конец строки |
{минимальная_длина,максима ьная_длина}
|
а вот это интересный баг форума --> максимальный
|
Часовой пояс GMT +3, время: 06:29. |