[英]Restrict spaces and accept only Latina letters
我是正則表達式的新手。 我試圖弄清楚如何只允許拉丁字母,禁止空格,但我的其他正則表達式仍然有效。
我有 6 個密碼步驟。 4/6 我已經介紹過了。 但是剩下的2個步驟有問題。
matches(/^(?=.*[a-z])/, "mustContainsLowerCase") works
matches(/^(?=.*[A-Z])/, "mustContainsUpperCase") works
matches(/^(?=.*\d)/, "mustContainsNumber") works
matches(/[^\dA-Za-z]/, "mustContainsSpecialCharacter") works
matches(/^(?=.* )/, "Should not contains spaces "), <- Not working
matches(/??/, "must contains only Latin letters"), <- I have no ideas
const valid = "a1W@";
const invalid1 = "a1W@ a1W@";
const invalid2 = "a1W@法" (法 forbidden, only Latin letters allow)
我將不勝感激任何幫助,因為我沒有任何想法。
^(?=.* )
正則表達式在字符串中至少需要一個常規空格,因為(?=...)
是一種正向預測。 你需要一個負面的前瞻, ^(?..* )
。 或者, /^(?!\S*\s)/
可用於禁止字符串中的任何空格。
要禁止字符串中包含任何非 ASCII 字母,您可以使用 ECMAScript 2018+ 兼容模式,例如
/^(?!.*[^\P{Alphabetic}a-zA-Z])/u
這里, [^\P{Alphabetic}a-zA-Z]
定義了任何不屬於AZ
和az
范圍的 Unicode 字母。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.