題目:請實作一個函式用來判斷字串是否表示數值(包括整數和小數),例如,字串"+100","5e2","-123","3.1416"和"-1E-16"都表示數值, 但是"12e","1a3.14","1.2.3","+-5"和"12e+4.3"都不是,
function isNumeric(s){ var reg=/^[\+-]?\d*\.?\d+(e[\+-]?\d+)?$/i return reg.test(s) }
正則運算式解法
[\+-]?正負號出現0次或一次
\d*數字出現任意次或0次
\.?若為小數:小數點出現一次;不是為0次
\d+出現一次或多次,若為小數小數點后必須有數由于前面設定為\d*可以為0次所以這里必須有至少一次
(e[\+-]?\d+)?表示科學計數法出現一次或者0次,其實完整應該是(\d+ e[\+-]?\d+但由于原先前面已經有\d+,所以不用額外再寫,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/27618.html
標籤:其他
上一篇:字串----正則運算式的匹配
