使用jquery在标签文本字符串中查找和删除字符

时间:2011-10-10 08:28:34

标签: javascript jquery

我有这段代码

<div class="new">
<label> text text text (=price) </label>
</div>

我想删除价格附近的“(=”和“)”,

我尝试过以下但无济于事:

 jQuery(document).ready(function() {
     jQuery(".new label").each(function() {
         jQuery(this).text(jQuery(this).text().replace(/[(=]/, ""));
     });
 });

4 个答案:

答案 0 :(得分:5)

我认为你的正则表达式是关闭的。试试这个:

jQuery(this).text(jQuery(this).text().replace(/\(=(.*?)\)/, "$1"));

答案 1 :(得分:0)

jsfiddle将与正则表达式匹配,并将内容替换为price(在我的示例中,您可以执行任何操作)。

这是js:

jQuery(document).ready(function() {
     jQuery(".new label").each(function() {
         jQuery(this).text(jQuery(this).text().replace(/\(=([A-z]*)\)/, "$1"));
     });
 });

<强>解释

  • 正则表达式将匹配匹配字母字符的每个字符串(大写和小写&gt;&gt;&gt; [A-z])。
  • 此字符串必须用括号括起,并以相等开头:\(=/)(不要忘记转义括号)
  • 匹配的字符串用于替换$1(这是括号(...)之间的第一个设置)

请参阅this page

上的轮换段落

答案 2 :(得分:0)

没人提到'g'标志,它将取代全球的一切:

 $(".new label").each(function() {
   $(this).text($(this).text().replace(/[\)\(=]?/g, ""));
 });

你还需要逃避括号。

http://jsfiddle.net/DdbDQ/1/

编辑我不会删除这个答案,但不应该使用它,因为现在我重新阅读它,很明显它会替换整个括号中的任何括号或等号标签的文字。使用Ben Lee的解决方案。

答案 3 :(得分:-1)

 jQuery(".new label").each(function() {
     jQuery(this).text(jQuery(this).text().replace("(=", "").replace(")", ""));         
 });

这假设(=和)不会出现在标签的任何其他位置。

http://jsfiddle.net/HcqQC/