簡體   English   中英

如何僅將字符串數字轉換為數字?

[英]How to convert only string digits to number?

 var txt = '54839257+32648-34324'; var x; for (x of txt) { if (0||1||2||3||4||5||6||7||8||9) { var con = Number(x); } else { x.toString();} document.write(con); }

在上面的代碼中,我想將字符串中的數字轉換為數字而不是加號和減號。 我想讓他們在一起以獲得結果。 像這樣: 54839257+32648-34324 但我的代碼給出了這個: 54839257NaN32648NaN34324

如果要標記數字和符號,但要轉換整數值,則需要先拆分這些值。 正則表達式內的符號周圍的括號允許您捕獲分隔符。

之后,您可以檢查該值是否為數字。

編輯:我將分隔符從[-+]更改為[^\\d]因為這更有意義。

 const input = '54839257+32648-34324'; const tokenize = (str) => { return str.split(/([^\\d])/g).map(x => !isNaN(x) ? parseInt(x, 10) : x); } console.log(tokenize(input));
 .as-console-wrapper { top: 0; max-height: 100% !important; }

對於這種情況,您只需使用正則表達式替換即可。

const toNumber = (v) => {
     if (typeof v === "number") return v;
     if (typeof v !== "string") return;
     return  Number(v.replace(/[^0-9]/g, ""));
};

console.log(toNumber("OO7+54839257+32648-34324"));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM