我正在创建一个字符串解析器应用,这是我的应用流程。
问题是,当我试图使用以下两种方法转换一个字符串数字时,我的问题是 Number(myString)
或 parseInt(myString)
我得到了 NaN
.但当我使用一个虚拟变量,如 let i = "19"
它将正确地把它转换为数字,我试过把我的字符串转换为urlEncoded格式,结果是:对于字符串来说,它是正确的。
我试着把我的字符串转换成urlEncoded格式,结果是:for string21
编码的结果是 %E2%80%AD21%E2%80%AC
所以我的结论是,我在网络浏览器中复制粘贴得到的字符串由于某种格式化而无法解析。
我如何修复这种行为?
你可以使用 replace(/[^\x20-\x7E]/g, '')
来替换不可打印的ASCII字符,就像这样。
const sillyString = decodeURIComponent("%E2%80%AD21%E2%80%AC");
console.log(sillyString);
console.log(parseInt(sillyString));
console.log(parseInt(sillyString.replace(/[^\x20-\x7E]/g, '')));
也许会有帮助?