2017-05-03 126 views
0

我的問題是,我必須編寫正則表達式,它將禁止只包含數字的字符串。現在我有:ASP.NET正則表達式,限制數字

@"^\D{3,30}$" 

但它不會匹配像qwe2。所以,換句話說,我需要的正則表達式,即:

  • 檢查是否符號的數目是3和30之間
  • 允許所有符號
  • 拒絕輸入如果字符串由數字僅

例如qwe/{}21''@3 - good; 123 - 壞; ab - 不好。

+0

你需要清楚地說明情況。你想要每個符號都存在? 'ab'怎麼壞? – Rahul

+0

你想創建一個密碼驗證器嗎?那麼你應該要求符號的數量在12到200之間或更多。 30遠遠不夠,最大數目太短,3也沒有 - 即使6現在太小了。 30會阻止人們使用安全密碼短語並強制他們使用不安全的短密碼 –

回答

2

負向預測^(?!\d+$)會使輸入的匹配失敗僅由數字組成。其餘的是很明顯的:

^(?!\d+$).{3,30}$ 

演示:https://regex101.com/r/ACeHB7/1

+0

可以肯定的是,它的工作原理就像 - 如果'左邊的東西不是數字 - >字符串符合表達式? – user7803907

+1

如果'字符串開頭右側的內容不是數字,那麼由至少3個和最多30個字符組成的字符串將適合表達式。 – horcrux