2014-12-04 121 views
0
<input type="text" name="data[546c8157fcc404ca04951022][5476bddb4a1bfef2128b4567][exp][apr]"> 

我想提取數組的第二部分並用0替換。怎麼做到這一點?字符串jQuery的提取部分

預期輸出

<input type="text" name="data[546c8157fcc404ca04951022][0][exp][apr]"> 

我試着更換和子功能,但沒有運氣。請幫幫我。

回答

1
^(.*?\[[^\]]+\])\[[^\]]+\] 

試試這個。更換$1[0]。參見demo。

http://regex101.com/r/yR3mM3/47

var re = /^(.*?\[[^\]]+\])\[[^\]]+\]/gi; 
var str = '<input type="text" name="data[546c8157fcc404ca04951022][5476bddb4a1bfef2128b4567][exp[apr]">'; 
var subst = '$1[0]'; 

var result = str.replace(re, subst); 
+0

感謝它爲我的工作和我的節省時間。 – Sadikhasan 2014-12-04 14:08:00

+1

@Sadikhasan youre welcome :) – vks 2014-12-04 14:08:26

1

嘗試用:

var element = $('<input type="text" name="data[546c8157fcc404ca04951022][5476bddb4a1bfef2128b4567][exp][apr]">'); 

var parts = element.attr('name').split(']['); 
    parts[1] = 0; 

element.attr('name', parts.join('][')); 

輸出:

<input type="text" name="data[546c8157fcc404ca04951022][0][exp][apr]"> 
+0

它工作正常,但影響我的表單數據。在我的表單中隱藏的數據在應用此代碼後未發佈。 – Sadikhasan 2014-12-04 12:59:27

+0

感謝您的幫助。 – Sadikhasan 2014-12-04 14:20:03