我一直有一個「南」想什麼時候從字符串「parseInt函數或parseFloat」喜歡「Sometext 330」parseFloat()從字符串中間
Var a = "Sometext 330"
return parseFloat(a);
,它將返回「南」,但我需要整數或浮點數330
我一直有一個「南」想什麼時候從字符串「parseInt函數或parseFloat」喜歡「Sometext 330」parseFloat()從字符串中間
Var a = "Sometext 330"
return parseFloat(a);
,它將返回「南」,但我需要整數或浮點數330
您可以先清理字符串,以便在解析數字之前只有數字保留在字符串中。
編輯:現在它更安全,因爲它會接受數字類型而不會爆炸。
var a = "Sometext 330"
function safeParseFloat(val) {
return parseFloat(isNaN(val) ? val.replace(/[^\d\.]+/g, '') : val)
}
function superSafeParseFloat(val) {
if (isNaN(val)) {
if ((val = val.match(/([0-9\.,]+\d)/g))) {
val = val[0].replace(/[^\d\.]+/g, '')
}
}
return parseFloat(val)
}
console.log(
safeParseFloat(a),
safeParseFloat(2000.69)
)
console.log(
superSafeParseFloat('blah $2,000,000.69 AUD'),
superSafeParseFloat('blah $8008 USD'),
superSafeParseFloat('NotANumber'),
superSafeParseFloat(8008.69),
superSafeParseFloat('... something 500.5... test')
)
您也可以分割字符串太多,如果你的使用情況始終是相同的。
var str = "test 900";
var split = str.split(' ');
// Loop through the split array
split.forEach(function(item){
// If the split is not NaN
if(!isNaN(item)){
// Heres your number
console.log(item);
}
});
更優雅的方式:
Var a = "Sometext 330"
return parseFloat(a.match(/\d+$/)[0]);
當然,因爲第一個字符不是一個數字! –
你將不得不打斷字符串,並檢查你不能解析該字符串的數字,因爲它包含文本 –
如果只有兩個字,第一個文本和第二個數字,然後拆分它,並只採取數字。順便說一句,parseFloat是一個JavaScript功能,你不能改變它。 – Shubham