私のJSPページでは、列の1つがHH:mm形式で示された時刻用であり、データ型がString(日付からサーバー内の文字列)。今、JqueryプラグインTableditを使用してインラインテーブルの行編集を適用しています。JavaScript RegExpはすべての有効な入力と無効な入力でfalseを返します
私は列を編集している間に、サーバーに送信する前にRegExpでチェックしています。
var inTime = [];
var timeRegEx = new RegExp("^([0-9]|0[0-9]|1[0-9]|2[0-3]):([0-9]|0[0-9]|([1-5][0-9]))$");
inTime[1] = "14:34";
if (timeRegEx.test(inTime[1])) {
alert("Matched");
//return true;
} else {
alert("Not Mateched");
//return false;
}
私はいくつかのonilneリソースに正規表現の妥当性をチェックして、それが正しいです。
私の場合、すべての有効で無効な入力では、常にelseブロックに行きます。
さらに多くのことが、警告のinTime [1]の値を印刷している間です。正規表現の%3Aとそれはまた、働いていない。だから私もを置き換え14%3A13
を:それはのような出力を提供します。
私はどこが間違っているのか、正しい解決策は何かを教えてください。
編集:ここ
:%の3Aと解釈ので、これは問題を引き起こすかもしれません。
ここで、inTimeはテーブル行から値を取得する配列です。
、私はそれが絶対的に正常に動作し、実行可能なスニペットにコードを置きます。より関連性の高いコードを表示し、コンソールでエラーを確認してください。値が '14%3A13'であれば、何らかの形でURLエンコードされているように見えます。それはなぜコードが失敗するのかを説明します。 –
これを試してください: 'if(decodeURIComponent(timeRegEx。test(inTime [1]))){' – spanky
'%3A'は ':'のhtmlエンティティで、文字列をデコードしてからregexでテストします。 – Toto