JavaScript/jQueryで英数字、-、_またはスペースを許可する正規表現を検索しています。グーグルを試しましたが、それを見つけることができませんでした。
誰でもこれで私を助けることができますか?
前もって感謝します。
この正規表現を試してください:
/^[a-z\d\-_\s]+$/i
文字セット はここで非常に役立ちます。検証する文字に一致するセットを作成します。
\w
_と同じである_[A-Za-z0-9_]
_と英数字を一致させることができます(他の言語は異なる場合があります)。-
_とスペースが残ります。これらは、_[\w\- ]
_などの一致するセットに結合できます。ただし、スペース文字だけでなく_\s
_の使用を検討することもできます(_\s
_はタブや他の形式の空白にも一致します)-
__のような文字範囲と混同しないように_\-
_を_A-Z
_としてエスケープしていることに注意してください^
_および_$
_を介して、文字列全体が アンカーすることにより に一致することを確認する必要があります。おそらく探している完全な正規表現は次のとおりです。
_/^[\w\-\s]+$/
_
( _+
_は が一致するために少なくとも 1文字でなければならないことに注意してください。長さがゼロの場合は、代わりに_*
_を使用してください文字列も大丈夫です)
最後に、 http://www.regular-expressions.info/ は素晴らしいリファレンスです
ボーナスポイント:この正規表現しない ASCII以外のアルファに一致します。残念ながら、ほとんどのブラウザの正規表現エンジンは名前付き文字セット をサポートするライブラリがいくつかあります をサポートしていません。
名前付き文字セットをサポートする言語/プラットフォームでは、_/^[\p{Letter}\d\_\-\s]+$/
_を使用できます
/^[-\w\s]+$/
\ w一致文字、数字、およびアンダースコア
\ sマッチspaces、tabs、および改行
-はhyphenと一致します(文字セットの例[az]にハイフンがある場合は、必ずハイフンを最初はそうです[-az])
var string = 'test- _ 0Test';
string.match(/^[-_ a-zA-Z0-9]+$/)
var regex = new RegExp("^[A-Za-z0-9? ,_-]+$");
var key = String.fromCharCode(event.charCode ? event.which : event.charCode);
if (!regex.test(key)) {
event.preventDefault();
return false;
}
regExp [A-Za-z0-9?spaceHere,_-]
疑問符「?」の後にリテラルスペースがあります。これはスペースに一致します。 /^[-\w\s]+$/
および/^[a-z\d\-_\s]+$/i
私のために働いていませんでした。
この正規表現を試してください
*正規表現を更新
/^[a-z0-9]+([-_\s]{1}[a-z0-9]+)*$/i
これにより、単一のスペースのみ、またはテキスト間に-または_が許可されます。
Ex: this-some abc123_regex
学ぶために: https://regexr.com
*注:Totoの質問に基づいて正規表現を更新しました