如何删除所有文本除了一个带有一些单词的开头?

时间:2014-10-30 18:17:44

标签: javascript regex

我试图删除除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进行比较

3 个答案:

答案 0 :(得分:2)

你需要“timestamp_”吗?

为什么不

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

答案 1 :(得分: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

答案 2 :(得分: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", "");
   }
}
相关问题