2017-05-16 4 views
-1

を制限する:スペース 正規表現は、私はいくつかの制限があるために、HTMLの入力を必要とするいくつかのシナリオに

  • は同じ文字が3倍以上
  • は、数字を許可しない連続しないようにしてください許可しない

    • 、0-9

    注:は主に文字(C、A、E、など...)

    をアクセント許可する必要がありますあなたは、これは、それは素晴らしいことだHTML入力に実装私を見ることができる場合

    /^([^0-9]*)$/ 
    

    は、今の私は最後のルールを(何の数字は許可されません)実装されています。

  • +0

    編集済み@TimBiegeleisen、thanks –

    +0

    これを行うには、あなたはlookaroundが必要だと思いますが、HTML入力正規表現がこれをサポートしているかどうかはわかりません。 –

    +0

    * "特殊なutf-8文字(ç、á、ê、etc ...)を許可する必要があります" *は広すぎます。ユニコードテーブルを参照して、どのような種類の文字を許可するかを明確に説明してください。 –

    答えて

    0

    空白以外の数字と数字以外の数字は、かなり簡単です。^[^\s0-9]+$

    ^(?!.*(.)\1{3})[^\s0-9]+$ 
    

    デモ:https://regex101.com/r/E02Hrh/3

    注非ラテン文字と一緒に、それは特殊文字を許可すること(?!@など非反復条件は否定先読み^(?!.*(.)\1{3})で実施することができます)しかし、これらの質問では明示的に禁止されていません。

    0

    非四重反復の場合、ドミトリーはそう言います。
    否定的な先読みで簡単に実行できます。あなたは、HTML入力でsupplement block

    ^(?!.*(.)\1{3})[a-zA-ZÀ-ÿ]+$ 
    

    例から、たとえば、Unicodeの範囲

    ^(?!.*(.)\1{3})[a-zA-Z\u00c0-\u00ff]+$ 
    

    を追加したり、あなたが期待する範囲(複数可)を追加することができ、特別なUTF文字の場合(?!.*(.)\1{3})

    と正規表現パターン検証

    <form action="javascript:console.log('ok')"> 
     
    letters: <input type="text" name="letters" 
     
    pattern="^(?!.*(.)\1{3})[a-zA-ZÀ-ÿ]+$" title="Letters"> 
     
    <input type="submit"> 
     
    </form>

    +0

    誰でも何らかの理由でダウンvoted。ありがとう、今私の評判は再びモジュラス10に丸められています。 – LukStorms

    +0

    ユニコードテーブルの見栄えを良くするため、この便利なサイトをお勧めします:http://utf8-chartable.de/ –

    関連する問題