JQuery:替换特定字符串中的所有文本

时间:2015-05-06 16:41:25

标签: javascript jquery regex

我的问题是我要替换所有以' $ amount'开头的文字。进入' [美元]'

实施例。 string:"我有100美元而你只有50美元"

结果:"我有[美元],你只有[美元]"

另一个例子。 :" $ testString blah blah blah $ anotherString test test"

结果:" [美元]等等等等[美元]测试"

它会影响页面正文中的所有字符串。谢谢!

2 个答案:

答案 0 :(得分:2)

使用具有全局选项(/g

的正则表达式
html = html.replace(/\$/g, "#");

您没有说明需要应用的位置。

e.g。对于整个网页

var html = $('body').html();    
html = html.replace(/\$/g, "#");
$('body').html(html);

e.g。对于每个div(使用函数参数html()):

$('div').html(function(i, v){
    return v.replace(/\$/g, "#");
});

e.g。对于每个段落(使用函数参数html()):

$('p').html(function(i, v){
    return v.replace(/\$/g, "#");
});

更新:匹配数量:

html = html.replace(/\$[0-9.]*/g, "#");

JSFiddle: http://jsfiddle.net/TrueBlueAussie/kveoxd2e/

更新:将任何内容与下一个空格(例如单词)匹配:

html = html.replace(/\$\w*/g, "[dollar]");

JSFiddle: http://jsfiddle.net/kveoxd2e/2/

如果你真的想要美分......更新:匹配包括美分在内的任何东西

html = html.replace(/\$(\S)*/g, "[dollar]");

JSFiddle: http://jsfiddle.net/kveoxd2e/4/

答案 1 :(得分:1)

从0到无限var stringVar =“我有100美元而你只有50美元”;     stringVar.replace(/ \ $ / g,“#”);

编辑:

对于您的更新问题,您需要更改正则表达式:

stringVar.replace(/\$[0-9]*(\.)?[0-9]+/g, "[dollar]");

这应该替换任何金额,即使是小数点。

您可以将RegEx视为:

  • $:字符“$”
  • [0-9] *:任何数字,从0到无限或根本没有字符
  • (\。)?:可以有0或1“。”
  • [0-9] +:任何数字 从0到无限但在 至少一位数

如果您不需要检查数字,甚至不需要替换字符,请使用:

stringVar.replace(/\$(\S)*/g, "#");
  • (\ S)*:“$”
  • 后面的任何非空格字符