簡體   English   中英

slug的JS正則表達式字符串驗證

[英]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.

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