0

間違った値を許可し、正しい値に自動的にフォーマットする方法を見つけようとしています。

たとえば、1 jun 2013 と入力すると、'j' が大文字ではないため、この値は許可されません。値をテキスト (onBlur) としてインターセプトし、「j」を大文字の値に変更する方法はありますか?

問題は、入力の生の値を取得する前にエラーが発生することです。エラーが発生する前に、どの時点で値を取得できるかわかりません(日付を解析できないため)。

ありがとう。

4

3 に答える 3

1

日付が毎回同じ形式で入力されることを期待している場合は、入力をスペースで分割する関数を作成し、 を実行したときに各部分が数値かどうかを確認しparseInt()、そうでない場合は、それを大文字にします。

function formatDate(date) {
  var dateElements = date.split(" ");
  var formattedDate = "";

  for (var i=0; i < dateElements.length; i++) {
    var dateElement = dateElements[i];

    if (isNaN(parseInt(dateElement))) {
      dateElement = dateElement.charAt(0).toUpperCase() + dateElement.slice(1);
    }
    formattedDate += dateElement + " ";
  }
  return formattedDate.trim();
}

var formattedDate = formatDate("1 jun 2013");
alert(formattedDate);

デモを参照してください。

于 2013-02-20T00:38:55.567 に答える