[英]JS regex string validation for slug
我有一個應用程序,允許最終用戶輸入他想要的slug。 我正在尋找的是一個正則表達式,檢查slug是否有效。
一般來說,有效的意思是指以拉丁語開頭和結尾的字符串,除以破折號但不超過一個破折號。
更具體地說,以下是正確的:
one-two-three
以下不是:
one---two-thee-
-one-two-three
one-two-three-
因此,使用以下正則表達式我可以,但是如何檢查字符串中間是否有不超過兩個破折號?
^[a-z][a-z][a-z]$
有沒有更好的方法來編寫這個正則表達式,以滿足我的驗證creteria?
http://regexpal.com/可以是一個很好的網頁,可以在您編寫時檢查您的正則表達式。 一個方便的工具:)。
看看你的,它應該接受大寫字母/數字嗎? 如果是這樣,也許這將幫助:
/ ^ [A-ZA-Z0-9] +(: - [A-ZA-Z0-9] +)* $ /
這將僅匹配由單個 - 分隔的一個或多個字母數字字符序列的序列。 如果您不想允許單個單詞(例如,只是hello),請將*乘數替換為+,以僅允許最后一個組的一次或多次重復。
這是從同一個線程中演示的實時樣本的鏈接。
在方塊內圍繞A-Za-z0-9進行更改將允許您僅接受適合您的大寫字母,非大寫字母或數字。
祝你好運,如果你有任何疑問,請告訴我! :)
^[a-z][a-z\-]*[a-z]$
實際上這應該是你的正則表達式,你的驗證應分兩個階段進行測試。
這個正則表達式的第一個是基本測試,第二個可以通過拆分hipns並再次檢查分割字符串上的相同正則表達式來完成。
我最喜歡的:
^[a-z](-?[a-z])*$
以小寫字母開頭; 然后更低或可能是連字符,但不是沒有另一個右下方。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.