我想知道如何爲我的正則表達式指定字符數。 我有正確的正則表達式,我只需要確保這將工作驗證零到四十個字符。正則表達式只驗證字母數字,沒有空格,只有40個字符
這裏是正則表達式
$fnameRegex = "/^[a-zA-Z0-9{0,40}-_]+$/";
我可能已經把{0,40}
錯了地方。
我想知道如何爲我的正則表達式指定字符數。 我有正確的正則表達式,我只需要確保這將工作驗證零到四十個字符。正則表達式只驗證字母數字,沒有空格,只有40個字符
這裏是正則表達式
$fnameRegex = "/^[a-zA-Z0-9{0,40}-_]+$/";
我可能已經把{0,40}
錯了地方。
嘗試在字符類[]
$fnameRegex = "/^[a-zA-Z0-9\-_]{0,40}$/";
一切都將只匹配一個字符。你把數量限制器放在它外面(你以前有+
這是1或更多 - 用{0,40}替換它在0和40之間)。
我還在角色類中逃脫了你的-
角色,否則它會被解釋爲一個範圍。
我也向你推薦偉大的regexr網站,這個網站很適合與正則表達式交互使用。
這個怎麼樣?
^(\d){0,40}$
\ d僅匹配位數 {0,40}表示前面的表達式(\ d)可存在從0到40倍。
你可以使用這個工具來檢查你的正則表達式。它可以是有用的: http://gskinner.com/RegExr/
希望這有助於
感謝您的鏈接!我真的需要這個 – GivenPie
嘗試 [A-ZA-Z0-9] {40} 這將檢查字母數字的40個字符與上部和下部殼體
我聽說有趣的事情發生時,你逃脫了一個短劃線 – GivenPie
真的嗎?當你*不*逃脫一個在字符類中被認爲是字面上的短劃線時,就會發生不好的事情。如果你不想因爲某種原因而逃避它,那麼把它放在字符類的開頭或結尾,這樣就不會有歧義:'[a-zA-Z0-9 _-]'。 –
我已經嘗試過上面的模式,但有允許字之間的空間,所以如何避免空格也... – Sajith