在最后一个下划线之后需要获得ID的一部分

时间:2015-09-15 23:52:37

标签: javascript jquery html regex

我希望在最后一个下划线之后有效地获取所有内容,或者包括“chk”之后的所有内容

示例是

GridView1__ctl2_chkOut  --> I want ONLY  chkOut

或者

GridView1__ctl2_chkYes2  --> I want ONLY  chkYes2

或者

GridView1__ctl2_chkNo2  -->  I want ONLY chkNo2

我将永远知道ID,例如GridView1__ctl45_chkNo2

我知道子字符串可能不是处理它的最好方法,除非它与其他计算字符的东西一起使用直到找到最后一个下划线或者它可能找到了“chk”部分等等。不确定 var res = str.substring(1,4);

HTML

   <td>
        <input id="GridView1__ctl2_chkOut" type="checkbox" name="GridView1:_ctl2:chkOut" checked="checked" class="out">
    </td>
    <td>
        <input id="GridView1__ctl2_chkYes2" type="checkbox" name="GridView1:_ctl2:chkYes2" checked="checked" class="yesno">
    </td>
    <td>
        <input id="GridView1__ctl2_chkNo2" type="checkbox" name="GridView1:_ctl2:chkNo2" class="yesno">
    </td>

5 个答案:

答案 0 :(得分:3)

我将使用jQuery访问“id”属性,然后拆分值:

var r = $('.yesno').attr('id').split('_').pop()

fiddle

答案 1 :(得分:1)

使用split()并访问数组中的最后一项

&#13;
&#13;
var ids = ['GridView1__ctl2_chkOut'
  , 'GridView1__ctl2_chkYes2'
  , 'GridView1__ctl2_chkNo2'
];

for (var i = 0; i < ids.length; i++) {
  var splat = ids[i].split('_');
  console.log(splat[splat.length - 1]);
}
&#13;
&#13;
&#13;

答案 2 :(得分:1)

var arr = "GridView1__ctl2_chkOut".split("_");
arr[arr.length - 1]; // gives chkOut

答案 3 :(得分:1)

你可以这样做:

str='GridView1__ctl45_chkNo2';
let index = str.lastIndexOf('_');
let result = str.substr(index + 1);

小提琴:https://jsfiddle.net/75fc4uau/

答案 4 :(得分:1)

这将为您提供从最后一个下划线到字符串结尾的所有内容。

var res = str.substring(str.lastIndexOf('_')+1, str.length);

如果你想进一步过滤,比如chk之前的任何东西

var chkRes = res.substring(res.lastIndexOf('chk'), res.length);