2017-09-15 9 views
7

特殊文字が見つかると偽を返す正規表現があります。一重引用符や二重引用符が見つかった場合は、同じことをするように変更しようとしています。これはregexr.comが役に立たない1回です。ここでjavascript一重引用符または二重引用符が見つからない正規表現

は、特殊文字のために働く私の表現である:ここでは

^(?=.*?[A-Z]{2})((?!!|@|$|%|\^|&|\*)).)*$ 

は、単一引用符と二重引用符のための私の正規表現です:

^(?=.*?[A-Z]{2})((?!'|").)*$ 

私も彼らを脱出しようとした:

^(?=.*?[A-Z]{2})((?!\'|\").)*$ 

助けてください!私はこれに多くの時間を無駄にし、すぐにそれを把握することはできません。

var isValidText = function (val) { 
    var rx = new RegExp(\^(?=.*?[A-Z]{2})((?!!|@|$|%||^|&||*)).)*$\); 
    var result = rx.text(val); 
    return result; 
} 

シンプルな入力:

私たちは、党と私の家この週末を抱えている

は私が方法を持っています。あなたの好きなだけ多くの友人を 持ち込んでください。多いほどもっと良いでしょう。

この段落は、われわれの中で一重引用符が見つかるとすぐに無効にする必要があります。

+0

申し訳ありませんが、最初の正規表現はどのように機能しますか? – revo

+1

最初のものは、有効な正規表現ではなく、なぜ '[^" ']は、 'あなたのために働いていない? –

+3

あなたが先読みを使用している理由は?あなたが書いたものから、それは/'のように単純であるべき説明していただけます'| "/。test(str)'、私は何が欠けていますか? –

答えて

6

は、ここでは前後参照は必要ありません、あなたは、単一の文字にマッチしているので、あなたは、単に代わり|の文字セットを使用することができます。

.*[[email protected]$%^&*'"].*

+0

これは素晴らしいです!しかし、Alex Blexのコメントは^を取り除いても機能したことに言及する必要があります。ありがとうございました。 – Patricia

関連する問題