2016-06-16 6 views
0

入力時にテキストを画像に表示します。JS正規表現をテストする必要があります

正規表現で認識される文字をユーザーが入力すると、それを画像に置きます。エラーが発生するか、入力フィールドに入力しないでください。

これは正規表現です:[A-Z0-9a-z&,.-/()@*+!?"':; -]

私はこのようにそれを達成しようとしている:

$("#firstText").keyup(function() { 
    var value = $(this).val().toUpperCase(); 
    var regex = "[A-Z0-9a-z&,.-/()@*+!?"':; -]"; 

    if(regex.test(value)) 
    { 
    $(".zetin16").text(value); 
    } else { 
    alert('this is bad'); 
    } 
}); 

をしかし、私はこのエラーを取得する:この行でUncaught SyntaxError: Invalid or unexpected token

var regex = "[A-Z0-9a-z&,.-/()@*+!?"':; -]";

事前にお手伝いをしていただきありがとうございます。

UPDATE

今細かい作業正規表現。今では、正規表現が文字に一致しないときに、入力時に文字を入力しないようにしたい。これは、現在、私のコードです:

$("#firstText").keyup(function(e) { 
    var value = $(this).val().toUpperCase(); 
    var regex = new RegExp(/[A-Z0-9a-z&,.-/()@*+!?"':; -]/); 

    if (regex.test(value)) { 
     $(".zetin16").text(value); 
    } else { 
     e.preventDefault(); 
     return false; 
    } 
}); 
+0

正規表現を使用するため、このパターンを使用してみてください。シンタックスハイライトはあなたの友人です。 – CollinD

+0

最初の正規表現をこのように変更 var regex = "[A-Z0-9a-z&、.- /()@ * +!?:;]"; –

答えて

1

あなたはそれでエスケープ二重引用符で、二重引用符で囲まれた文字列として変数を定義しているので、あなたが見ている正確なエラーがあります。

とにかく文字列であってはなりません。このような正規表現でなければなりません。

var regex = /[A-Z0-9a-z&,.-/()@*+!?"':; -]/; 
+0

これでエラーは表示されません。しかし、正規表現では利用できない文字を入力できないようにする関数がいくつかありますか? :) – feknuolis

+0

@feknuolis [This](http://stackoverflow.com/questions/995183/how-to-allow-only-numeric-0-9-in-html-inputbox-using-jquery)助けることができます。 – RRK

+0

@feknuolisまたは[this](http://stackoverflow.com/a/19111723/1479535) – RRK

2

正規表現では、区切り文字としてスラッシュを使用します。スラッシュは正規表現自体の内部リテラルとして発生した場合は、それをエスケープ:

var regex = /[A-Z0-9a-z&,.-\/()@*+!?"':; -]/; 

参考:JavaScript regex replace - escaping slashes

(元の文字列との問題、それは二重引用符が含まれていて、二重使用して区切られたということでした同時に引用する)。

0

はあなたが早くそれを終了し、あなたの文字列内の二重引用符を持っている

var regex = "['A-Z0-9a-z&,.-/()@*+!?':; -]"; 

var reg =new RegExp(regex) 

var val ="asss" 

reg.test(val) 
関連する問題