使用正則運算式檢查姓名和姓氏是否僅包含拉丁文和西里爾文的大寫和小寫字母、空格和破折號(減號)。
第一個字符必須是拉丁文或西里爾文的大寫字母,其他字符必須是西里爾文或拉丁文的小寫字母;在第二個字符之后,允許使用空格或破折號;在空格/破折號之后,單詞必須再次以大寫字母開頭,其他字母必須小寫;在第二個字符之后可能會有一個新的空格/破折號,但最后它必須以一個以大寫字母開頭的單詞結尾;不允許將兩個空格或破折號并排放置,也不允許一個空格和一個破折號,它必須至少包含一個空格/破折號。不得短于 5 個字符或長于 180 個字符。
如果姓名和姓氏格式不正確,請在欄位周圍和欄位下方顯示一個橙色框,橙色字母顯示錯誤“姓名和姓氏書寫不正確”。離開輸入姓名和姓氏的欄位后顯示錯誤。
如果用戶更正了姓名和姓氏,再次離開該欄位后,將橙色框和下面的錯誤洗掉。
可用名稱:
Петар Петрови?
Petar Petrovi?
Petar Petrovic
Petar Petrovi?-Njego?
Jovana-Stefanija Ivanovi?-Vasi? Petrovi?
無效的姓名和姓氏:
Ud A
Уд A?
Уд_Ад
Ud. Ad
Петар 2 Петрови?
Petar P Petrovi?
Jovan J. Jovanovi?
P2etar Grbi?
Petar Petrovi?-njego?
Petar petrovi?
$(function() {
$('#imeprezime1').on('blur', function(e) {
var provera = /^([A-Z]{1})([a-z]{1,80})([\-|\s]{0,1}[A-Z]{1}[a-z]{1,50})*$/.test($(this).val());
if (provera === true) {
$(this).css('outline', '0px solid');
} else {
$(this).css('outline', '4px solid orange');
$(this).after('<span style="color: orange;">Име и презиме ни?е правилно написано</span><br>')
}
});
$('#imeprezime1').on('focus', function(e) {
$(this).next("span").remove();
$(this).next("br").remove();
});
});
如何限制字符數并添加西里爾字母?還需要 Fname 和 Lname。謝謝!
uj5u.com熱心網友回復:
由于字串也包含塞爾維亞-克羅地亞語字符,因此我也對其進行了檢查。
(?=^.{5,180}$)^[А-Я][а-я???????] (?:[\s-][А-Я][а-я???????] ) $|^[A-Z][a-z???????] (?:[\s-][A-Z][a-z???????] ) $
正則運算式解釋
(?=^.{5,180}$)斷言字串長度至少為 5 且最多為 180^[А-Я][а-я???????] (?:[\s-][А-Я][а-я???????] ) $匹配拉丁(和塞爾維亞-克羅地亞)字母的名字^[A-Z][a-z???????] (?:[\s-][A-Z][a-z???????] ) $匹配西里爾字母(包括塞爾維亞-克羅地亞)字母的名稱
另外,請參閱正則運算式演示
var provera = /(?=^.{5,180}$)^[А-Я][а-я???????] (?:[\s-][А-Я][а-я???????] ) $|^[A-Z][a-z???????] (?:[\s-][A-Z][a-z???????] ) $/.test($(this).val());
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/491986.html
