-1

HTML フォームには、テキストを入力できるフィールドがあります。テキストは、数値、ブール値、または単なる文字列にすることができます。文字列を読み取り、最も適切な型に解析された値を返す関数が必要です。jQuery の使用。これは私がこのために書いたコードです。コメントはありますか?

var isIntegerRegex = /^\s*(\+|-)?\d+\s*$/,
    isDecimalRegex = /^\s*(\+|-)?((\d+(\.\d+)?)|(\.\d+))\s*$/;

function parseVal(value) {
    if ($.type(value) !== "string") {
        return value;
    } else if (value.search(isIntegerRegex) != -1) {
        return parseInt(value,10);
    } else if (value.search(isDecimalRegex) != -1) {
        return parseFloat(value);
    } else if (value.toLowerCase()==="true") {
        return true;
    } else if (value.toLowerCase()==="false") {
        return false;
    } else {
        return value;
    }
}

正規表現は次から取得されました: http://ntt.cc/2008/05/10/over-10-useful-javascript-regular-expression-functions-to-improve-your-web-applications-efficiency.html

4

1 に答える 1

2

これはどうですか:

​function parse(string) {
    var number = parseFloat(string);

    if (!isNaN(number)) return number;
    if (string.toLowerCase() === "true") return true;
    if (string.toLowerCase() === "false") return false;
    return string;
};
于 2012-12-09T15:12:35.387 に答える