waniwanisan
@waniwanisan

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

特定の記号のみを許すバリデーションの組み方

解決したいこと

特定の記号のみを許すバリデーションを記述したい

下のコードは記号が入ってる場合はtrue, そうでなければfalseで返しますのですべての記号が対象になりますが「:」「_」「-」「@」は許すが他の記号は許さないバリデーションを組みたいと調べていましたが参考になるサイトが出てきませんでした。

全ての記号に対するバリデーション)

function validateString(val) {
  var reg = new RegExp(/[!"#$%&'()\*\+\-\.,\/:;<=>?@\[\\\]^_`{|}~]/g);
  if(reg.test(val)) {
    return true;
  }
  return false;
}

自分で試したこと

検索のみ

0

1Answer

一通りの記号が入っている正規表現の部分から、今回対象としたい「:」「_」「-」「@」の記号だけ対象にする形・・・で意図が合っていますでしょうか?

例 :

function validateString(val) {
    var reg = new RegExp(/[:\_\-@]/g);
    if (reg.test(val)) {
        return true;
    }
    return false;
}

console.assert(validateString(':'));
console.assert(validateString('_'));
console.assert(validateString('-'));
console.assert(validateString('@'));

console.assert(!validateString('!'));
console.assert(!validateString('+'));

console.assertで対象の記号の時はtrueが返り、その他の記号の!+などでfalseが返っていることを確認しています!

0Like

Comments

  1. @waniwanisan

    Questioner

    解答が早くてとても助かります。まさしく探していた内容です。普段、用意された正規表現をそのまま使うことが多かったので今後は簡単なバリデーションはサクッと作れるように知識をつけたいです。
    ありがとうございました!!!

Your answer might help someone💌