これは私が持っている正規表現です。文字列がアンダースコアで始まったり終わったりしないようにする必要があります。アンダースコアが間に表示される場合があります。
/^[a-zA-Z0-9_.-]+$/
私が試してみました
(?!_)
しかし、うまくいかないようです
許可された文字列:
abcd
abcd_123
許可されていない文字列:
abcd_
_abcd_123
これは私が持っている正規表現です。文字列がアンダースコアで始まったり終わったりしないようにする必要があります。アンダースコアが間に表示される場合があります。
/^[a-zA-Z0-9_.-]+$/
私が試してみました
(?!_)
しかし、うまくいかないようです
許可された文字列:
abcd
abcd_123
許可されていない文字列:
abcd_
_abcd_123
逆の方法でこれにアプローチすることができます、
次のように、開始アンダースコアと終了アンダースコアが一致するものをすべて確認してください。
/^_|_$/
^_ #starts with underscore
| #OR
_$ #ends with underscore
そして、一致するものを排除します。上記の正規表現ははるかに読みやすくなっています。
チェック:http ://www.rubular.com/r/H3Axvol13b
または、より長い正規表現を試すことができます。
/^[a-zA-Z0-9.-][a-zA-Z0-9_.-]*[a-zA-Z0-9.-]$|^[a-zA-Z0-9.-]+$|^[a-zA-Z0-9.-][a-zA-Z0-9.-]$/
^[a-zA-Z0-9.-] #starts with a-z, or A-Z, or 0-9, or . -
[a-zA-Z0-9_.-]* #anything that can occur and the underscore
[a-zA-Z0-9.-]$ #ends with a-z, or A-Z, or 0-9, or . -
| #OR
^[a-zA-Z0-9.-]$ #for one-letter words
| #OR
^[a-zA-Z0-9.-][a-zA-Z0-9.-]$ #for two letter words
難しすぎない!
/^[^_].*[^_]$/
「行頭のアンダースコアを除く^[^_]
任意の文字 ( )、次に任意の文字 ( .*
)、行末の前のアンダースコアを除く任意の文字 ( [^_]$
)。」
これには、文字列を検証するために少なくとも 2 文字が必要です。1 文字行を許可する場合:
/^[^_](.*[^_]|)$/
「行を開始するためのアンダースコア以外のすべて、および行末の前にいくつかの文字とアンダースコア以外の文字を追加するか、または行末をすぐに終了します。
/^[a-zA-Z0-9.-][a-zA-Z0-9_.-]+[a-zA-Z0-9.-]$/
これを試して
説明:
最初のセクションでは[a-zA-Z0-9.-]
、正規表現は大文字と小文字のアルファベット、数字、ドット、およびハイフンのみを使用できます。
次のセクションでは[a-zA-Z0-9_.-]+
、正規表現は、小文字または大文字のアルファベット、数字、ドット、ハイフン、またはアンダースコアである単一または複数の文字を探します。
最後の部分 は[a-zA-Z0-9.-]
、入力がアンダースコアで終わるように制限する最初の部分と同じです。