51

I am searching for a regular expression for allowing alphanumeric characters, -, _ or spaces in JavaScript/jQuery. I tried Googling but wasn't able to find that.

Can anyone help me out with this?

Thanks in advance.

4

9 に答える 9

90

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

  • 英数字と を一致させることができます。これはJavaScript\wと同じです(他の言語では異なる場合があります)。[A-Za-z0-9_]
  • その葉-とスペースは、 などの一致するセットに組み合わせることができます[\w\- ]。ただし、\sスペース文字だけの代わりに使用することを検討することもできます (\sタブやその他の形式の空白にも一致します)。
    • 正規表現エンジンが次のような文字範囲と混同しないように、私はエスケープ-していることに注意してください\-A-Z
  • 最後に、 と を介して開始と終了を固定することにより、文字列全体が一致することを確認したい場合があります。^$

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

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

( は、一致する文字が少なくとも1 つ存在する必要があることを示していることに注意し+ください。長さがゼロの文字列でも問題ない場合は、代わりに a を使用してください)*

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


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

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

于 2012-11-08T06:17:18.657 に答える
68

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

/^[a-z\d\-_\s]+$/i
于 2012-11-08T06:25:45.307 に答える
11
/^[-\w\s]+$/

\wは文字数字、およびアンダースコアに一致します

\sは、スペースタブ、および改行に一致します

-ハイフンに 一致します(文字セットの例 [az] にハイフンがある場合は、[-az] のように先頭にハイフンを配置してください)

于 2012-11-08T06:25:52.823 に答える
9
var string = 'test- _ 0Test';
string.match(/^[-_ a-zA-Z0-9]+$/)
于 2012-11-08T06:15:10.833 に答える
4

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

*更新された正規表現

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

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

Ex: this-some abc123_regex

学習するには: https://regexr.com

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

于 2019-07-05T13:20:41.807 に答える
4
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いませんでした。

于 2016-03-22T15:57:05.033 に答える
0

英数字とスペースを許可するためにこれを試してください

[a-zA-Z0-9]

于 2022-01-18T09:55:54.123 に答える