从`class`名称中删除/替换不需要的前缀信息

时间:2015-03-08 08:56:03

标签: jquery css regex

我从后端获得style。它有不需要的前缀。如果没有前缀,我会替换相同的。什么是正确的方法?

这是我得到的:

<style>
043BF83A8FB24A418DA4248840101DE5 .cls_0 {
font:26px 'Arial';
color:rgb(0,0,0);
font-weight:bold;
}

043BF83A8FB24A418DA4248840101DE5 .cls_1 {
font:26px 'Arial';
color:rgb(0,0,0);
}

043BF83A8FB24A418DA4248840101DE5 .cls_11 {
font:13px 'Arial';
color:rgb(0,0,0);
}

043BF83A8FB24A418DA4248840101DE5 .cls_12 {
font:16px 'Arial';
color:rgb(0,0,0);
font-weight:bold;
}

043BF83A8FB24A418DA4248840101DE5 .cls_13 {
font:16px 'Arial';
color:rgb(0,0,0);
}
</style>

这是我的要求..

<style>
.cls_0 {
font:26px 'Arial';
color:rgb(0,0,0);
font-weight:bold;
}

 .cls_1 {
font:26px 'Arial';
color:rgb(0,0,0);
}

.cls_11 {
font:13px 'Arial';
color:rgb(0,0,0);
}

.cls_12 {
font:16px 'Arial';
color:rgb(0,0,0);
font-weight:bold;
}

.cls_13 {
font:16px 'Arial';
color:rgb(0,0,0);
}
</style>

我的尝试,但失败了:

var styleText = $('style').get(1).html();
console.log(styleText); //throw error as  "Uncaught TypeError: undefined is not a function"

2 个答案:

答案 0 :(得分:2)

这是一个解决方案:

$('style').html(function(_,h){
  return h.replace(/^\w+ (\.\w+)/gm,'$1');
});

这将删除任何<style>元素中行的开头和类选择器之前的任何字符串。

Demonstration

答案 1 :(得分:0)

前缀似乎是十六进制的,所以这将完成工作:

str.replace(/^[A-F0-9]+\s+/gm, '')