从javascript中的字母数字字符串获取数值
我有一个字符串“RowNumber5”,现在我想使用Javascript从该字符串中获取数值“5” 注意:数字值将始终位于字母后面的末尾,这意味着数字值永远不会出现在字母之间。 范例-从javascript中的字母数字字符串获取数值,javascript,string,Javascript,String,我有一个字符串“RowNumber5”,现在我想使用Javascript从该字符串中获取数值“5” 注意:数字值将始终位于字母后面的末尾,这意味着数字值永远不会出现在字母之间。 范例- Result45 - Yes Result45Abc - Never 我可以用这样的方法得到这个“5” var t = "Ruby12"; var y = parseInt(t.split('').reverse().join("")); if(!isNaN(y)) { y = y.toString
Result45 - Yes
Result45Abc - Never
我可以用这样的方法得到这个“5”
var t = "Ruby12";
var y = parseInt(t.split('').reverse().join(""));
if(!isNaN(y)) {
y = y.toString().split('').reverse().join("");
}
else {
y = "";
}
console.log(y);
有办法吗?还是更好的方法?我会使用分治法,处理可能包含数字的所有字符串:
var t = "Ruby12";
function get_numbers(str) {
var parts = str.split(""), nums = "";
for(var i = 0, len = parts.length; i < len; i++) {
nums += (isNaN(parts[i])) ? "" : parts[i].toString();
}
return(nums);
}
var numbers = get_numbers(t);
alert(numbers);
var t=“Ruby12”;
函数get_numbers(str){
var parts=str.split(“”),nums=“”;
对于(变量i=0,len=parts.length;i
这将为您提供“12”。这里有一个正则表达式解决方案:
// input string
var t = "Ruby12";
var num = null;
var match = t.match(/([0-9]+)$/);
if(match!=null) num = parseInt(match[1]);
// num now contains null or number
// debug
console.log(num);
尝试使用这个正则表达式
var s = "gdgdfg45";
var matches = s.match(/\d+$/);
console.log(matches[0]);
这就是正则表达式的用途
var matches = /\d+$/.exec("Ruby12");
matches[0]; //returns 12
var matches = /\d+$/.exec("sfwfewcsd098");
matches[0]; //returns 098
var matches = /\d+$/.exec("abc"); //matches returns null
这行不通吗?/*([0-9]+)$/您总是知道该字符串的alpha部分吗?如果是,则可以将该子字符串替换为“”,并解析rest@Kuro:不,alpha部分是动态的。@MightyWork:你能展示完整的实现吗?我现在看到了,检查答案谢谢。这看起来不错,但是/\d+$/.exec(“abc”)[0]出现错误。因此,在获取第一个元素之前需要检查null。可以是类似于var number=/\d+$/.exec(“abc”)的值吗/\d+$/.exec(“abc”)[0]:“”;