Просмотр полной версии : RegExp проверка ФИО
greenhill
11.05.2010, 17:33
Здравствуйте, подскажите почему символ пробела не читается?
Как сделать проверку на два пробела между Ф \ И и И \О ?
function informalizeGreeting(str:String):Boolean {
var pattern:RegExp = new RegExp("[a-zA-Z]+\s", "i");
var result:Object = pattern.exec(str);
if(result == null) {
return false;
}
return true;
}
var formalGreeting:String = "Green ";// false
trace(informalizeGreeting(formalGreeting));
Конструктор RegExp (http://help.adobe.com/ru_RU/AS3LCR/Flex_4.0/RegExp.html#RegExp()).В регулярном выражении, которое определяется методом конструктора RegExp(), чтобы воспользоваться метапоследовательностью, которая начинается с символа обратной косой черты (\) (например, \d, что соответствует любой цифре), дважды введите символ обратной косой черты. Например, эквивалентными являются следующие два регулярных выражения:
var re1:RegExp = new RegExp("\\d+", "");
var re2:RegExp = /\d/;И не забывайте про RegExp.test().
greenhill
11.05.2010, 17:51
Спасибо большое!
[a-zA-Z]+\\s+[a-zA-Z]+\\s+[a-zA-Z]
еще вопрос: что надо ввести, чтоб после последнего слова ничего нельзя было бы ввести? То есть если я пишу Green Yellow Brown Black, то выдает true
символ $ в конце строки, это если про парсер
greenhill
11.05.2010, 17:59
var pattern:RegExp = new RegExp("[a-zA-Z]+\\s+[a-zA-Z]+\\s+[a-zA-Z]$", "i");
вот так не работает
что надо ввести, чтоб после последнего слова ничего нельзя было бы ввести? То есть если я пишу Green Yellow Brown Black, то выдает true
Не понял вопрос.
greenhill
11.05.2010, 18:06
var pattern:RegExp = new RegExp("[a-zA-Z]+\\s+[a-zA-Z]+\\s+[a-zA-Z]$", "i");
если ввести так - не работает. Просто пишет false не смотря на строку
если ввести
var pattern:RegExp = new RegExp("[a-zA-Z]+\\s+[a-zA-Z]+\\s+[a-zA-Z]+$", "i");
то работает , можно ввести ФИО, но можно после последнего слова вводить еще что-угодно и вернет true, вот как закрыть ?
Добавлено через 17 минут
В общем, как ввести не более трех слов :) ?
Часть строки совпадает с шаблоном - вот и true. Можно методом exec() выдернуть совпавшую с шаблоном строку, которая и будет ФИОм.
greenhill
11.05.2010, 18:33
То есть ввести ограничение на 4е слово я никак не могу?
Zebestov
11.05.2010, 18:42
var p:RegExp = /^([a-zA-Z]+\s+[a-zA-Z]+\s+[a-zA-Z]+)$/;
trace(p.test("one two three")); // true
trace(p.test("one two three four")); // false
greenhill
11.05.2010, 18:44
большое спасибо, работает!
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.