URL スラッグ (基本的には、単一のダッシュで区切られた英数字の「単語」)に一致する正規表現の作成に問題があります。
this-is-an-example
私はこの正規表現を思い付きました:/[a-z0-9\-]+$/
文字列を英数字とダッシュのみに制限しますが、それでも次のような誤検知が発生します。
-example
example-
this-----is---an--example
-
私は正規表現がかなり苦手なので、助けていただければ幸いです。
これを使用できます:
/^
[a-z0-9]+ # One or more repetition of given characters
(?: # A non-capture group.
- # A hyphen
[a-z0-9]+ # One or more repetition of given characters
)* # Zero or more repetition of previous group
$/
これは一致します: