Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.07.2013, 01:22
Кандидат Javascript-наук
Отправить личное сообщение для OklickSpb Посмотреть профиль Найти все сообщения от OklickSpb
 
Регистрация: 17.02.2012
Сообщений: 130

Регулярное выражение
Всем доброго времени суток!
Хочу реальзовать такое регулярное вырадение:
Разрешено вводить только латиницу, цифры и нижнее подчеркивание( _ ), все остальное - ошибка.
Рылся в инете ничего подходящего не нашел. Сам составить пробовал, не получилось.
Пробовал так:
var reg = new RegExp(/[0-9a-z_]+/i);
return reg.test(text);
//Не ругается на русские символы.

Помогите плиз.
Заранее благодарен.
Ответить с цитированием
  #2 (permalink)  
Старый 02.07.2013, 01:35
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

function tststr(text){
return text.replace(/[0-9a-z_]+/ig,'')=='';
}

var a="gggggggggggggggg";
alert(tststr(a));

var b="Не ругается на русские символы.";
alert(tststr(b));
Ответить с цитированием
  #3 (permalink)  
Старый 02.07.2013, 01:38
Кандидат Javascript-наук
Отправить личное сообщение для OklickSpb Посмотреть профиль Найти все сообщения от OklickSpb
 
Регистрация: 17.02.2012
Сообщений: 130

При вводе такой строки не ругается: "qwertew1ывап"
Ответить с цитированием
  #4 (permalink)  
Старый 02.07.2013, 01:47
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Сообщение от OklickSpb
При вводе такой строки не ругается: "qwertew1ывап"
Тестим!

function tststr(text){
return text.replace(/[0-9a-z_]+/ig,'')=='';
}


var b="qwertew1ывап";
alert(tststr(b));

Последний раз редактировалось Deff, 02.07.2013 в 01:57.
Ответить с цитированием
  #5 (permalink)  
Старый 02.07.2013, 02:10
Кандидат Javascript-наук
Отправить личное сообщение для OklickSpb Посмотреть профиль Найти все сообщения от OklickSpb
 
Регистрация: 17.02.2012
Сообщений: 130

Благодарю.
Оказывается
var pattern = new RegExp(/[0-9a-z_]+/ig);
return pattern.test(text);

и
return text.replace(/[0-9a-z_]+/ig,'')=='';

Работают по разному)
Ответить с цитированием
  #6 (permalink)  
Старый 02.07.2013, 02:21
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

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));

Последний раз редактировалось Deff, 02.07.2013 в 02:46.
Ответить с цитированием
  #7 (permalink)  
Старый 02.07.2013, 02:40
Кандидат Javascript-наук
Отправить личное сообщение для OklickSpb Посмотреть профиль Найти все сообщения от OklickSpb
 
Регистрация: 17.02.2012
Сообщений: 130

Понял, спасибо большое!)
Ответить с цитированием
  #8 (permalink)  
Старый 02.07.2013, 04:25
Аспирант
Отправить личное сообщение для sexyQuery Посмотреть профиль Найти все сообщения от sexyQuery
 
Регистрация: 23.06.2013
Сообщений: 54

/^[a-z\d_]{1,30}$/i.test('OklickSpb');
/^[a-z\d_]{1,30}$/i.test('Hello, world!');
^ - начало строки
$ - конец строки
Ответить с цитированием
  #9 (permalink)  
Старый 02.07.2013, 04:26
Аспирант
Отправить личное сообщение для sexyQuery Посмотреть профиль Найти все сообщения от sexyQuery
 
Регистрация: 23.06.2013
Сообщений: 54

{минимальная_длина,максима ьная_длина}
Ответить с цитированием
  #10 (permalink)  
Старый 02.07.2013, 04:27
Аспирант
Отправить личное сообщение для sexyQuery Посмотреть профиль Найти все сообщения от sexyQuery
 
Регистрация: 23.06.2013
Сообщений: 54

а вот это интересный баг форума --> максимальный
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Составить регулярное выражение для гугла alerzo Events/DOM/Window 1 18.02.2013 16:55
Регулярное выражение alerzo Events/DOM/Window 1 17.09.2012 19:20
Составьте пожалуйста регулярное выражение didfree jQuery 4 21.07.2012 15:48
Регулярное выражение: любой символ, включая перевод строки Gleb Общие вопросы Javascript 3 28.07.2011 12:15
регулярное выражение theo_ Общие вопросы Javascript 15 21.06.2010 10:29