2

我有一个字符串 ctl00_ContentPlaceHolder1_lstViewFormulas_ctrl06_lblCountDown 将使用我的 asp.net 按钮控件中的 sender 进入一个 javascript 函数...

<asp:Button ID="buttStartTimer" runat="server" CausesValidation="false" OnClientClick="javascript:countdown(this);" Text="Start" />

功能测试(发件人){

}

需要在ctrl后面直接获取数字,在上面的例子中应该是06(ctrl06_lblCountDown)

如何使用 javascript 提取此号码?

谢谢

4

3 回答 3

2
var str = "ctl00_ContentPlaceHolder1_lstViewFormulas_ctrl06_lblCountDown",
    result = str.match(/.*ctrl(\d+).*/)[1];

工作示例:http: //jsfiddle.net/RXGb2/

于 2013-01-24T17:13:57.493 回答
0

你可以尝试这样的事情:

var str = 'ctrl06_lblCountDown',
    numericArray = [],
    numericString,
    num,
    i=0,
    len = 0;


numericArray = str.match(/[0-9]/g);

len = numericArray.length;

numericString = '';
for(i=0; i<len; i++){
    numericString += numericArray[i];

}

num = parseInt(numericString,10);
于 2013-01-24T17:19:51.643 回答
0

您可以轻松提取正在使用的正则表达式:

var str = "ctl00_ContentPlaceHolder1_lstViewFormulas_ctrl06_lblCountDown";
var num = parseInt(str.match(/_ctrl([\d]*)_/)[1], 10);

更安全的方式:

var str = "ctl00_ContentPlaceHolder1_lstViewFormulas_ctrl06_lblCountDown";
var parts = str.match(/_ctrl([\d]*)_/), num;
if(parts.length > 1) {
    num = parseInt(parts[1], 10);
}
于 2013-01-24T17:11:01.820 回答