2015-04-01 68 views
0

我有這樣的正則表達式:加入條件的正則表達式只匹配ASCII字符

(至少一個大寫,一個downcase,一個數字,沒有空間,LEN 8〜128)

我要添加新的條件:只有ASCII字符

目前我正在試圖用:/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(^\p{ASCII})\S{7,128}.+$/

這對於工程(不匹配):"çko#1!RtsdsWs"

但會匹配(因爲ç,我不想匹配):"kço#1!RtsdsWs"

回答

1

在匹配每個非空格字符之前,使用積極的前瞻來檢查ASCII字符。

^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?:(?=\p{ASCII})\S){8,128}$ 

OR

^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?:(?=[[:ascii:]])\S){8,128}$ 

DEMO

+0

好。如果我不想要空格? – 2015-04-01 03:11:08

+0

檢查我的更新... – 2015-04-01 03:11:21

+1

工程就像一個魅力!謝謝!! – 2015-04-01 03:15:29