17

URL スラッグ (基本的には、単一のダッシュで区切られた英数字の「単語」)に一致する正規表現の作成に問題があります。

this-is-an-example

私はこの正規表現を思い付きました:/[a-z0-9\-]+$/文字列を英数字とダッシュのみに制限しますが、それでも次のような誤検知が発生します。

-example
example-
this-----is---an--example
-

私は正規表現がかなり苦手なので、助けていただければ幸いです。

4

2 に答える 2

66

これを使用できます:

/^
  [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
 $/ 

これは一致します:

  1. 先頭の一連の英数字。
  2. 次に、ハイフン、英数字のシーケンスが 0 回以上一致します。
于 2013-10-08T19:14:55.050 に答える