Я использую шаблоны Java-скрипта для проверки имени, но понял, что мне действительно нужно быть экспертом в шаблонах для решения этой проблемы. Функция должна возвращать значение true для имени, которое составлено из алфавитов, имя может быть сделано из одного или нескольких альфа-слов, разделенных пробелом или дефисом Например. следующие допустимые имена.Javascript для проверки поля имени
- Джон Фишер
- Джон Эндрю Фишер
- Мичил B Джексон
- Мичил-B-Джексон
Micheal Micheal-B-Jackson-Fisher
После недопустимые имена
- Мичил В джексон (Предположим, что существует пробел после Джексоном)
- Мичил (предположим, что существует пробел, прежде чем м)
- Micheal/(этот имеет не альфа-символов)
- -micheal-В-Джексон (начинается с дефисом)
- Мичил * ДЖЕКСОН (имеет * слова, слова могут быть разделены только - или пробел)
я написал следующую функцию, которая работала хорошо до тех пор, пока имя не из более 2 слов, разделенных пробелами или -. Однако теперь требования изменились, и имя может иметь более одного слова.
function isAlpha(field) {
var lbl = field.name;
var val = field.value;
if (val==null || val.length==0) return true;
//egs of this pattern 1)Rachit Pant 2)R Pant
var rep1 = /[A-Za-z]+\s[A-Za-z]+/;
//egs of this pattern 1)Rachit-Pant 2)R-Pant
var rep2 = /[A-Za-z]+[-][A-Za-z]+/;
//one or more alpha character
var rep3 = /[A-Za-z]+/;
var test1 = val.match(rep1);
var test2 = val.match(rep2);
var test3 = val.match(rep3);
if((test1!=null)){
if(test1.length == 1 && test1[0].length == val.length)
return true;
}
if((test2!=null)){
if(test2.length == 1 && test2[0].length == val.length)
return true;
}
if((test3!=null)){
if(test3.length == 1 && test3[0].length == val.length)
return true;
}
alertMe('GL006',field,field);
return false;
}
Если вы делаете это для чего-нибудь, но проект класса я настоятельно рекомендую не ограничивающие имена, которые могут вводится. У людей на этой Земле есть странные странные имена. – thatidiotguy
Невозможно изменить требования. :( – Rpant