2014-10-30 23 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", ""); 
    } 
} 
相关问题