如何从字符串中仅提取应为“5”的最后一个数字?
Orange
答案 0 :(得分:10)
鉴于你的字符串......
var str = "1000040928423195 points added to your balance";
...我们可以用正则表达式提取所有数字......
var onlyNumbers = str.replace(/\D/g,'');
......最后,得到最后一个:
var lastNumber = onlyNumbers.substring(onlyNumbers.length - 1);
这是一个演示:
var str = "1000040928423195 points added to your balance";
var onlyNumbers = str.replace(/\D/g,'');
var lastNumber = onlyNumbers.substring(onlyNumbers.length - 1);
console.log(lastNumber);
答案 1 :(得分:3)
只需在parseInt
之后添加toString()即可
var str = "1000040928423195 points added to your balance";
var str = parseInt(str).toString();
var lastNum = str.substr(str.length - 1);
console.log(lastNum);
答案 2 :(得分:3)
使用像/\d+(\d)/
var str = "1000040928423195 points added to your balance";
str.match(/\d+(\d)/)[1]
答案 3 :(得分:2)
在第二行之后,str
不再是字符串;它是一个整数。因此,您可以使用str % 10
提取最后一位数字;如有必要,将其转换为字符串。
答案 4 :(得分:2)
尝试使用正则表达式解析它,如下所示:)
string = "120394023954932503 fdsaf fdsaf dasfasd";
regex = /([0-9]*)/g;
match = regex.exec(string);
last_num = match[0].substr(match[0].length - 1);
console.log(last_num);

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="string_val"></div>
&#13;
答案 5 :(得分:1)
使用正则表达式\d+(\d)
匹配多个数字后跟一个数字。
\d
将尽可能多地占用,其中(\d)
将匹配最后一个。
然后从第一组[1]
获取最后一个数字。
var str = "1000040928423195 points added to your balance";
var match = /\d+(\d)/g.exec(str)[1];
console.log(match);
&#13;
答案 6 :(得分:1)
var digit = /.*(\d)/.exec("awoo123awoo")[1];
3