Javascript正则表达式:如何从字符串中提取“id”?

时间:2010-03-05 17:47:24

标签: javascript regex

我有这个字符串:comment_1234

我想从字符串中提取1234。我怎么能这样做?

更新:我无法获得您的任何工作答案......我的代码是否有问题?警报永远不会被调用:

var nameValue = dojo.query('#Comments .Comment:last-child > a[name]').attr('name');
alert('name value: ' + nameValue); // comment_1234
var commentId = nameValue.split("_")[1];
// var commentId = nameValue.match(/\d+/)[0];
// var commentId = nameValue.match(/^comment_(\d+)/)[1];
alert('comment id: ' + commentId); //never gets called. Why?

解决方案:

我想出了我的问题...由于某种原因,它看起来像一个字符串,但它实际上并不是一个字符串,所以现在我将nameValue转换为一个字符串,它正在工作。

var nameValue = dojo.query('#Comments .Comment:last-child > a[name]').attr('name'); //comment_1234
var string = String(nameValue); //cast nameValue as a string
var id = string.match(/^comment_(\d+)/)[1]; //1234

3 个答案:

答案 0 :(得分:3)

someString.match(/\d+/)[0]; // 1234

或者,要专门定位“评论_”后面的数字:

someString.match(/^comment_(\d+)/)[1]; // 1234

答案 1 :(得分:0)

function ExtractId(str){
    var params = str.split('_');
    return params[params.length - 1];
}

var id = ExtractId('comment_1234');

答案 2 :(得分:0)

var tesst = "WishID=1List"
var test = tesst.match(/WishID=(.*)List/);
alert (test[1]);

if(test[1]==""){
  alert('Empty');
}