web-dev-qa-db-ja.com

英数字、-、_、およびスペースを許可するための正規表現

JavaScript/jQueryで英数字、-、_またはスペースを許可する正規表現を検索しています。グーグルを試しましたが、それを見つけることができませんでした。

誰でもこれで私を助けることができますか?

前もって感謝します。

29
rahul

この正規表現を試してください:

/^[a-z\d\-_\s]+$/i
45
elclanrs

文字セット はここで非常に役立ちます。検証する文字に一致するセットを作成します。

  • JavaScriptの_\w_と同じである_[A-Za-z0-9_]_と英数字を一致させることができます(他の言語は異なる場合があります)。
  • _-_とスペースが残ります。これらは、_[\w\- ]_などの一致するセットに結合できます。ただし、スペース文字だけでなく_\s_の使用を検討することもできます(_\s_はタブや他の形式の空白にも一致します)
    • 正規表現エンジンが_-__のような文字範囲と混同しないように_\-_を_A-Z_としてエスケープしていることに注意してください
  • 最後に、おそらく_^_および_$_を介して、文字列全体が アンカーすることにより に一致することを確認する必要があります。

おそらく探している完全な正規表現は次のとおりです。

_/^[\w\-\s]+$/
_

_+_は が一致するために少なくとも 1文字でなければならないことに注意してください。長さがゼロの場合は、代わりに_*_を使用してください文字列も大丈夫です)

最後に、 http://www.regular-expressions.info/ は素晴らしいリファレンスです


ボーナスポイント:この正規表現しない ASCII以外のアルファに一致します。残念ながら、ほとんどのブラウザの正規表現エンジンは名前付き文字セット をサポートするライブラリがいくつかあります をサポートしていません。

名前付き文字セットをサポートする言語/プラットフォームでは、_/^[\p{Letter}\d\_\-\s]+$/_を使用できます

68
Nevir
/^[-\w\s]+$/

\ w一致文字数字、およびアンダースコア

\ sマッチspacestabs、および改行

-hyphenと一致します(文字セットの例[az]にハイフンがある場合は、必ずハイフンを最初はそうです[-az])

10
cbayram
var string = 'test- _ 0Test';
string.match(/^[-_ a-zA-Z0-9]+$/)
7
nkamm
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私のために働いていませんでした。

3
Asif Khan

私にとっては、前述の文字列をサポートする正規表現が必要でした。基本的には、一部の外国の郵便形式をサポートすることを目的としています。これは、スペースを使用できる英数字である必要があるためです。

  1. ABC123
  2. ABC 123
  3. ABC123(スペース)
  4. ABC 123(スペース)

だから私は以下のようにカスタム正規表現を書くことになりました。

/^([a-z]+[\s]*[0-9]+[\s]*)+$/i

enter image description here

ここでは、スペースが必須ではないため、[\s]*で*を指定しました。私の場合、郵便番号にはスペースが含まれている場合と含まれていない場合があります。

0
Sibeesh Venu

この正規表現を試してください

*正規表現を更新

/^[a-z0-9]+([-_\s]{1}[a-z0-9]+)*$/i

これにより、単一のスペースのみ、またはテキスト間に-または_が許可されます。

Ex: this-some abc123_regex

学ぶために: https://regexr.com

*注:Totoの質問に基づいて正規表現を更新しました

0
kva