Javascript通用字符串类型解析器

时间:2012-12-09 14:50:35

标签: javascript jquery string-parsing

在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

1 个答案:

答案 0 :(得分: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;
};