2012-04-18 70 views
1

任何與這個jQuery的幫助我試圖拉斷我不能讓正則表達式的工作jQuery的正則表達式(正則表達式)

cj("input[id='PRE_TEXT_'(.*)'_POST_TEXT']").hide(); 
+0

'cj'表示沒有衝突模式 – Generic 2012-04-18 14:09:54

+2

這不是jQuery選擇器的工作方式。您需要使用'$ .filter()',並在傳遞給它的函數中使用正則表達式。 – Bojangles 2012-04-18 14:13:35

回答

3

不能在jQuery選擇使用正則表達式。使用過濾功能:

cj("input").filter(function() { 
    if (/^PRE_TEXT_(.*)_POST_TEXT$/.test(cj(this).prop("id"))) { 
     return true; 
    } 
    return false; 
}).hide(); 
+0

感謝下面的Micha James解決方案已經做到了這一點,但這將有助於未來。 – Generic 2012-04-18 14:27:39

+0

@Generic是詹姆斯解決方案更好,我剛剛離開這個帖子,爲未來的訪問者誰真的需要使用一個複雜的正則表達式。 – noob 2012-04-18 14:39:52

2

你不能使用正則表達式,但你應該能夠使用startswith和endswith。

cj("input[id^='PRE_TEXT_'][id$='_POST_TEXT']").hide(); 
+0

謝謝詹姆斯完美的作品,我應該想到這個新的正則表達式。 – Generic 2012-04-18 14:26:13