2

asp.netボタンコントロールからの送信者を使用してjavascript関数に入る文字列ctl00_ContentPlaceHolder1_lstViewFormulas_ctrl06_lblCountDownがあります...

<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 = "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 に答える
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 に答える