bugfix> javascript > 投稿

私は = を確実にするための解決策を探しています文字はフォーム内の入力には使用されません。

   <form>
        <input name="email" type="email" placeholder="Email" required="">
        <input name="last name" type="text" placeholder="Last Name">
        <input name="idnumber" type="number" placeholder="ID Number">
    </form>

メールと番号のタイプフィールドでこれを防ぐ必要がありますが、ハッキングできるかどうかはわかりません。したがって、おそらくそれらにもいくつかの検証を使用してください

私は正規表現が答えかもしれないと思った、それはほとんど働いています。微調整が必​​要です(両方の結果に、「test1」と「test2」のテキストが表示され、=が取り除かれます) https://regex101.com/r/faYiuB/1/

以下の最初の試みのように、これを正規表現で入力フィールドに組み込むことはできますか?

<input type="text" pattern="^[^\=]" required>

https://css-tricks.com/form-validation-part-1-constraint-validation-html/

回答 2 件
  • [^=]+ を使用できます   type="email" のパターン  および type="text"  ここにパターン 属性の正規表現は type="number" に適用されません  フィールド(および = を入力したり貼り付けたりすることはできません  数値フィールドへ)

    <form>
      <input name="email" pattern="[^=]+" type="email" placeholder="Email" required="">
      <input name="last name" pattern="[^=]+" type="text" placeholder="Last Name">
      <input name="idnumber" type="number" placeholder="ID Number">
      <input type="Submit">
    </form>
    
    

    ザ・ pattern="[^=]+"   /^(?:[^=]+)$/ に変換されます  regex(with u  ChromeおよびFireFoxの修飾子)と = 以外の1+文字で構成される文字列と一致します 。

  • そのボタンを押さないでください。テキストボックスのどこにでも=記号を入力することを許可しない例です。 2番目の例として、最初の文字としても許可しない場合があります。

    window.notEqual = function notEqual(evt) {
      var charCode = (evt.which) ? evt.which : evt.keyCode;
      return charCode != 61;
    }
    window.notEqualAtStart = function notEqualAtStart(evt, target) {
      if (target.value != '')
        return true;
      var charCode = (evt.which) ? evt.which : evt.keyCode;
      return charCode != 61;
    }
    
    
    <input type="text" onkeypress="return window.notEqual(event)" />
    <input type="text" onkeypress="return window.notEqualAtStart(event, this)" />
    
    

あなたの答え