簡體   English   中英

限制空格並只接受拉丁字母

[英]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]定義了任何不屬於AZaz范圍的 Unicode 字母。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM