請幫助我! 我已經研究了好幾個小時了。
我需要一個可以接受字母和以下特殊字符的名字重構函式。
-, ', .和空白
但是,它不能讓名字只由特殊字符或空白組成。
因此,從本質上講,它需要至少有一個字母,或者以一個字母開頭。
我得到的是這樣的結果;
我得到的是這樣的結果。
/^[a-zA-Z](|s|.|'|-]*$)/i
然而,它允許任何特殊字符。如果有人能幫忙的話!
uj5u.com熱心網友回復:
/^(?=.*[a-z])[a-zs.'-] $/i
(?=.*[a-z]) 要求至少是一個ASCII字母。(正向查找)
你可以使用 (匹配1或更多)或*(匹配0或更多)。
注意:由于標志i,你不需要A-Za-z。它是不分大小寫的。所以只有其中一個是必要的。使用兩個i-flag是多余的。
小知識:在字符集[...]中轉義.不是必須的,但可以選擇(.)。
const regex = /^(?=.*[a-z])[a-zs. ' -] $/i;
console.log(regex.test('Hello World'/span>), 'should be true'/span>) 。
console.log(regex.test('Hello.World'), 'should be true') 。
console.log(regex.test('Hello-World'), 'should be true') 。
console.log(regex. test(`'Hello- World.'), 'should be true') 。
console.log(regex.test('Hello $ World'), 'should be false') 。
console.log(regex.test('Hello@World'), 'should be false') 。
//最少需要一個A-Z字符。
console.log(regex. test(`'.-`), 'should be false');
<iframe name="sif1" sandbox="allow-forms allow-modals allow-scripts" class="snippet-box-edit snippet-box-result" frameborder="0"></iframe>
您也可以在網上測驗您的詞條,例如regexr或regex101。
uj5u.com熱心網友回復:
一個由所有-、'、.、空白和字母組成的字串是
^[-' .sa-zA-Z] $
一個至少有一個字母的字串,有無限個以上的字母夾在一個字母中:
^[-'.sa-zA-Z]*[a-zA-Z][-'/span>.sa-zA-Z]*$
你可以用你想要的方式來表示這些字母。a-zA-Z可以只是一個占位符。
uj5u.com熱心網友回復:
你可以不使用單一的鉸鏈,也可以選擇使用多個。在你的情況下,這將是2個:
function validateName(name) {
const whiteelist = /^[-'.sa-z]*$/i;
const letter = /[a-z]/i;
return whiteelist.test(name) && letter.test(name) 。
}
console. log("John Doe", "//=>", validateName("John Doe") )。)
console.log("John F.Kennedy", "//=>", validateName("John F. Kennedy") )。)
console. log("Willem-Alexander", "//=> ", validateName("Willem-Alexander") )。
console. log("Jeanne d'Arc", "//=> ", validateName("Jeanne d'Arc") )。
console.log("-' . ", "//=>", validateName("-' ."));
<iframe name="sif2" sandbox="allow-forms allow-modals allow-scripts" class="snippet-box-edit snippet-box-result" frameborder="0"></iframe>
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/311783.html
標籤:
