我有一个字符串“RowNumber5”,现在我想使用Javascript从该字符串中获取数值“5”。
注意:在字母表之后,数字值始终位于末尾,这意味着数字值将永远不会出现在字母表之间。 示例 -
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);
任何射击方式?或更好的方法吗?
答案 0 :(得分:2)
这就是正则表达式!
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
答案 1 :(得分:1)
这是一个正则表达式解决方案:
// 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);
答案 2 :(得分:1)
尝试使用此正则表达式
var s = "gdgdfg45";
var matches = s.match(/\d+$/);
console.log(matches[0]);
答案 3 :(得分:0)
我会选择分而治之的方法,处理可能包含数字的所有字符串:
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);
哪会给你“12”。