Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从javascript中的字母数字字符串获取数值_Javascript_String - Fatal编程技术网

从javascript中的字母数字字符串获取数值

从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

我有一个字符串“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);

有办法吗?还是更好的方法?

我会使用分治法,处理可能包含数字的所有字符串:

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]:“”;