2012-12-09 25 views
-1

在一個HTML表單我有一個可以有文字輸入到它的字段。文本可以是數字,布爾值或只是一個字符串。我想要一個函數來讀取字符串並將解析的值返回給最適用的類型。使用jQuery。 這是我爲此編寫的代碼。任何意見?一般的JavaScript字符串類型解析器

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

+0

This'd可能是在代碼審查更好 – Pointy

回答

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; 
};