私は古いjQuery(1.4.2)を使用していますが、残念ながらこれを変更することはできません。私はこれを使わなければならない。しかし、テストしていて、新しいjQuery(3.1)が問題になりましたが、私は使用できません。だから私は問題があります:古いjQueryとjavascript regExp
私はフォーム入力があります。私はjQueryを使って、この入力値を取得する:
var myInputValue = $("#myInput").val();
例えば、この入力の値:22分の22 //、はい、ダブル//そしてもちろん、それの文字列。
そして、私は正規表現のパターンがあります。
var pattern = new RegExp('[0-9A-Z]+(\/[0-9A-Z]+)*\/?', 'g');
をそして私はこのパターンを使用します。
pattern.test(myInputValue);
console.log(pattern.test(myInputValue)); //its true, but I think its not true
をそして、私はテストを行いました。私は直接、このために変数を使用didntは:
console.log(pattern.test('22/22//')); //its false, and I think is false, so this is good.
だから新しいjQueryのは、私の問題を作ったが、私は使用することはできません。私はこの仕事をどうやって作るのですか?
ありがとうございました!
あなたのjQueryのバージョンは、ブラウザの正規表現エンジンを行うには全く何もありません。また、 "新しいjQueryが私の問題を引き起こした"ということはまったく明らかではありません。あなたの質問を編集して、あなたが求めていることを明確にすることはできますか? –
それは私には明らかです:1)OPは完全な文字列一致が必要なので、パターンを '^'と '$'で囲む必要があります。2) 'RegExp#test'は'/g'で正規表現修飾子の場合、 '' g ''を削除する必要があります。そして、確かに、正規表現の表記法はきれいになります: 'var pattern =/^ [0-9A-Z] +(?:/ [0-9A-Z] +)* \ /?$ /;' –
@WiktorStribiżewしかし、それは動作していません。 しかし、私はこの問題を作りました。私は代わりの解決策を使用していました。 私はこの文字列をうまく機能させました。 $ .each(houseNumberValue.match(/ [0-9A-Z] +(\/[0-9A-Z] +)* \ /?/g)、関数(キー、値) { 連結+値; }); return concatenate; –