-1

我很着急我需要解决的问题如下所述

我有一个像 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

问候

4

3 回答 3

1

如果要将它们分隔为变量,那么最好使用数组

var id = $(this).attr('id');
var main = id;
var main = id.replace(/^[\D]+/i, '').split('_')
alert(main[0])//1,2,3 etc
于 2013-11-02T05:59:51.090 回答
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 正则表达式不支持后向断言。

于 2013-11-02T06:06:38.487 回答
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/

于 2013-11-02T06:10:35.223 回答