2014-10-30 45 views
0

我嘗試刪除所有文字,除了一個在JavaScript如何刪除除了一個以外的所有文字,並以某個詞開頭?

的想法是這樣做

//jQuery("someelement").attr("class"); 
var classes= "cnode_1 timestamp_1413504000 item"; 

classes = classes.replace(/^(?!timestamp_)/,''); 

我想只需要誰與timestamp_開始文本,預期輸出繼電器是:

timestamp_1413504000 

我想這一點,那麼搶號

//now "classes" show be timestamp_1413504000 
classes = classes.replace("timestamp_",""); 

預期的輸出繼電器是:

1413504000 

我希望避免使用類似的,分裂的空間clasess基地,然後使用bucle,最後用的indexOf

回答

2

你需要什麼「timestamp_」嗎?

爲什麼不

= classes.replace(/^.*timestamp_(\d+).*/img, "$1"); 
+0

沒有,我只需要旁邊timestamp_ – 2014-10-30 18:43:16

+0

數量那是我的反應做什麼。你試過了嗎?如果有效,請將其標記爲答案。 – 2014-10-30 19:12:19

+0

yeap它確實,我只是回答你的問題,在你的答案^^ – 2014-10-31 09:46:45

1

比較只需使用.match讓你的一部分想。

var classes= "cnode_1 timestamp_1413504000 item"; 

// match will return the matched string and the groups in an array 
var ts = classes.match(/timestamp_(\d+)/)[1]; // match[1] is the group (\d+) 
// 1413504000 
+0

這個工作對我以及其他情形,就像如果我有一個以上的timestamp_,將其更改爲「/時間戳_(\ d +)/ G」,retrive使用數組所有timestamp_,非常感謝:d – 2014-10-31 09:49:04

0

我知道你說你想避免分割或使用indexOf,但是javaScript沒有'startsWith'函數。爲什麼你想避免這樣做?以下是不可接受的?

var NumberOutput; 
var classList = document.getElementById('elementYouAreLookgingAt').className.split(/\s+/); 
for (var i = 0; i < classList.length; i++) { 
    if (classList[i].indexOf("someClass") == 0) { 
    NumberOutput = classList[i].replace("someClass", ""); 
    } 
} 
相關問題