例如,id爲的javascript:從複雜的ID字符串提取數組索引
id='_group[3].id.memberid'
我嘗試提取 '3' 使用
var thisIndex = j(this).attr('id').match('/[\d]+/g')[0];
不工作....
例如,id爲的javascript:從複雜的ID字符串提取數組索引
id='_group[3].id.memberid'
我嘗試提取 '3' 使用
var thisIndex = j(this).attr('id').match('/[\d]+/g')[0];
不工作....
正則表達式應該是略有不同:
.match(/\[(\d+)\]/)[1];
或者split
解決方案:
.split(/\]|\[/)[1];
如果id='_group[3].id.memberid'
是標準的格式,你可以做
id.split(']')[0].split('[')[1]
+1爲了解決這個瓦特/出一個正則表達式 – 2013-03-22 20:04:59
但是這實際上並沒有提取數字... – 2013-03-22 20:06:56
@BradM不使用正則表達式的論點往往是性能,但我不認爲鏈式分割調用比這種情況下的匹配性能更高。 – 2013-03-22 20:21:29
正則表達式文字不應該在字符串中。刪除.match
調用中的撇號。
如果您打算將它們作爲角色類,則不需要[]
;只需\d+
就夠了。如果您打算爲他們是文字,你需要轉義:
/\[\d+\]/
我懷疑g
希望無論是。
如果只使用第一個值,那麼'g'是無用的。 – 2013-03-22 20:05:07
只是提供一種替代方法,它不能完全回答問題,但可能首先解決問題。
如果你可以改變HTML,我會做到以下幾點:
HTML
<div id="_group[3].id.memberid" data-id="3"></div>
JS:
var thisIndex = j(this).attr('data-id');
你有訪問是如何生成的HTML?如果是這樣,您可能希望將該索引放入「data-'屬性中。更容易提取。 – Steve 2013-03-22 20:04:58