javascript - 无法将字符串转换为数字
问题描述
我有一个大文本,我根据该方案从中读取数据。关键字放在“smallArtName”数组中。该方案如下所示:
(关键词) xxx (cordX|cordY)
我无法将收到的字符串转换为数字。在我看来,原因是空白,在图片中的终端中可见。我尝试使用适用于示例文本的替换方法,但不适用于我的价值。
我是初学者,我可能会做得更简单,但我编写的代码有效,这是目前最重要的事情。
for (i = 0; i < smallArtName.length; i++) {
var n = art.artPrintScreen.indexOf(smallArtName[i]);
if (n > 0) {
var tempString = art.artPrintScreen.substring(n, n + 100);
betweenChar = tempString.indexOf('|');
for (k = betweenChar - 10; k <= betweenChar + 10; k++) {
if (tempString[k] == '(') {
xStart = k;
}
if (tempString[k] == ')') {
yEnd = k;
}
}
cordX = tempString.slice(xStart + 1, betweenChar);
cordY = tempString.slice(betweenChar + 1, yEnd);
strTest = " t est".replace(/\s/g, '')
var cordY2 = cordY.replace(/\s/g, '')
console.log(typeof (cordY))
console.log(cordY2)
console.log(cordY2[0])
console.log(cordY2[1])
console.log(cordY2[2])
console.log(cordY2[3])
console.log(cordY2[4])
console.log(cordY2[5])
console.log(strTest)
var cordYtest = parseInt(cordY2, 10);
console.log(cordYtest)
}
}
解决方案
您只需要更改正则表达式,以便替换除数字和负号之外的所有内容 - 而不仅仅是空格。IE
改变
var cordY2 = cordY.replace(/\s/g, '')
至
var cordY2 = parseInt(cordY.replace(/[^0-9-]/g, ''), 10);
以便变量cordY2
包含您需要的数字。
推荐阅读
- sql - 如何在Oracle中找出上个月的天数?
- c# - 取消/隐藏框架元素的行为
- sql - 如何在 Oracle 10g 中获取不在 GROUP BY 子句中的其他列?
- python - 如何阻止梯度提升机过拟合?
- angular - 按角度7中的日期过滤表格?
- rest - 如何绕过公开可用 API 的速率限制
- java - 直径、表面和周长输出的输入半径没有给我输出
- python - 如何在python中将美国货币转换为字符串
- google-apps-script - 如何将日期值总结为一个数字(天数总和)?
- sql - 在 SQL 中,我可以使用 like 或 contains 子句连接数据以排除某些值吗?