web-dev-qa-db-ja.com

Javascriptregexp-最初の文字がアスタリスクでない場合のみ

正規表現に基づいてカスタム検証を構築できるJavaScriptバリデーターを使用しています

彼らのウェブサイトから:regexp=^[A-Za-z]{1,20}$最大20文字の英字を使用できます。

入力フィールドに入力されたデータがこのスコープ外の場合、これはエラーを返します。

必要なのは、値の最初の文字にアスタリスクが付いている場合に入力フィールドのエラーをトリガーする文字列です。

次の方法で、反対のトリガー(最初の文字がアスタリスクでない場合はエラー)をトリガーできます。

regexp=[\u002A]

Heeeeelpお願いします:-D

14
Splynx

どうですか:

^[^\*]

notアスタリスクで始まる入力に一致します。正規表現の例から判断すると、正規表現と一致しない入力は検証エラーの原因となるため、二重否定を使用すると、必要な動作が得られるはずです:-)

私の正規表現の説明:

  • 最初の^は、「文字列の先頭」を意味します
  • [ ... ]構造は文字クラスであり、角かっこで囲まれた文字の中から1つの文字に一致します。
  • 文字クラスの先頭にある^は、「文字クラスを否定する」ことを意味します。つまり、リストされている文字の1つであるnotの任意の文字に一致します。
  • \*はリテラル*を意味します。 *は正規表現で特別な意味を持っているので、バックスラッシュでエスケープしました。 Robがコメントで指摘しているように、文字クラス内の(ほとんどの)特殊文字をエスケープする必要は厳密にはありません。
29
Cameron

^[^\*].+はどうですか。

内訳:

  • ^ =文字列の開始。
  • [^\*] = '*'以外の任意の1文字。
  • .+ =他の文字を少なくとも1回。
3
DuckMaestro

[の後に^を使用すると、文字クラスを反転できます。

regexp=[^\u002A]

0
Kamil Szot