0
<input type="text" id="NotesReturn" />
<script type="text/javascript">
    $("#NotesReturn").keypress(function (e) {
         kCode = e.keyCode || e.charCode
         var htmlRegExp=new RegExp("/<(\w+)((?:\s+\w+(?:\s*=\s*(??:'[^']*')|(?:'[^']*')|[^>\s]+))?)*)\s*(\/?)>/");
         if (htmlRegExp.test(kCode) || $(this).val().length >= 512)
            e.preventDefault();
    });

    $("#NotesReturn").bind('paste', function(e){
         var pastedValue=this.value+window.clipboardData.getData('Text');
         var trimmedValue=pastedValue.substring(0, 512);
         var htmlRegExp = new RegExp("/<(\w+)((?:\s+\w+(?:\s*=\s*(??:'[^']*')|(?:'[^']*')|[^>\s]+))?)*)\s*(\/?)>/");
         if(!htmlRegExp.test(trimmedValue))
         {
             $(this).val(null);
             $(this).val(trimmedValue.toString());
         }
         e.preventDefault();
    });

</script>

私のテキストボックスはhtmlデータを許可するべきではありません.しかし、予期しない量指定子エラーがスローされています.誰かが私を助けてくれます.私はエラーを理解できませんでした.

4

1 に答える 1

1

予期しない量指定子エラーは、おそらく単に非キャプチャ グループを示すための??inによるものです。 Barmer が述べたように、開始スラッシュと終了スラッシュは含めるべきではなく、丸かっこはバランスが取れていません。右の丸括弧を削除するか、別の左の丸括弧を追加する必要があります。 また、RegExp コンストラクターを使用する場合は、バックスラッシュの前にバックスラッシュを付けてエスケープする必要があります。 上記を実行すると有効な正規表現が得られますが、html を許可しないように正しく機能するかどうかは別の問題です。(??:(?:


于 2013-01-08T15:57:35.760 に答える