在某些“字符”Jquery之前和之后获取只有整数

时间:2013-11-02 05:57:10

标签: jquery regex

我有点急于我需要解决的问题如下所述

我有一个字符串,如DropDown1_2_3_4或radioButton2_4_6_8

我需要获得如下结果:1,2,3,4或2,4,6,8

var id = $(this).attr('id');
var main = id;
main = main.substring(main.indexOf('_') + 1).replace(/[^\d]/g, '');

这给了我234或468 我需要的是1,2,3,4或2,4,6,8

此致

3 个答案:

答案 0 :(得分:1)

如果要将它们分离为变量,则最好使用数组

var id = $(this).attr('id');
var main = id;
var main = id.replace(/^[\D]+/i, '').split('_')
alert(main[0])//1,2,3 etc

答案 1 :(得分:0)

使用先行断言:

'DropDown1_2_3_4'.match(/\d+(?=_)|_\d+/g).map(function(x) { return x.replace('_', ''); })
// => ["1", "2", "3", "4"]
'radioButton2_4_6_8'.match(/\d+(?=_)|_\d+/g).map(function(x) { return x.replace('_', ''); })
// => ["2", "4", "6", "8"]

var id = $(this).attr('id');
var main = id.match(/\d+(?=_)|_\d+/g).map(function(x) { return x.replace('_', ''); });

Javascript正则表达式不支持lookbehind断言。

答案 2 :(得分:0)

你能试试吗,

var id = $(this).attr('id'); //'DropDown1_2_3_4';
var main = id;
main = main.replace( /^\D+/g, '').replace(/_/g,',');
alert(main);

演示1:http://jsfiddle.net/DK8Kk/

var id = 'DropDown1_2_3_4';
var main = id;   
main = main.replace( /^\D+/g, '').split('_');
alert(main);
for (var i in main) {
    alert(main[i]);
}

演示2:http://jsfiddle.net/DK8Kk/2/