使用正则表达式在jQuery中将字符前置为字符串

我正在尝试使用正则表达式在某些字符串的开头添加一个字符,但我对它很新,似乎无法找到我正在寻找的答案。 我有像Below 1499Above 1900字符串,我想在数字字符串的开头添加$ 。 这是我必须找到的代码(顺便说一下,这些都是div中的文本字符,带有一个refinement_price_text类):

 $('.refinement_price_text').each(function(){ console.log($(this).text().match(/\d{1,5}/g)); }); 

它将它们很好地记录到控制台。 它们被记录为具有一个项目的数组。 我现在不知道如何为他们添加一个美元符号。 我试过prepend(),但这不起作用。 我试图将match()设置为变量,但这不起作用。 我想最初使用replace(),但我需要在那里维护当前值,只需将美元符号字符添加到开头,我不知道$(this)等价于正则表达式是为了保持相同的价值观。

如果这是有意义的,请告诉我。 我敢肯定必须有一个能够轻松实现此function的function吗? 谢谢你的帮助!

我相信这可以处理所有可能性:

 "111 Above 1499 and below 14930 and $100".replace(/([^$]|^)(\b\d+)/g, "$1$$$2") > "$111 Above $1499 and below $14930 and $100" 

要替换Jquery中的文本:

 $(this).text(function(i, t) { return t.replace(...above stuff...) }) 

http://jsfiddle.net/k7XJw/1/

忽略数字是圆括号,

 str = "111 Above 1499 and below 14930(55) and $100 and (1234) and (here 123) and (123 there)" str.replace(/([^$(]|^)(\b\d+\b)(?!\))/g, "$1$$$2") > "$111 Above $1499 and below $14930(55) and $100 and (1234) and (here 123) and (123 there)" 

对于简单的字符串,比如你发布的前瞻性正则表达式和替换将工作。 基本上告诉正则表达式找到一个字符串中的第一个数字(但不要消耗它)然后添加一个美元符号。 对于同一个字符串中的多个数字,您必须调整正则表达式。

 var s = "before 1900" s=s.replace(/(?=[0-9])/,"$"); console.log(s); 

修改为支持多次出现。 它查找以空格开头的任何数字,然后将美元符号添加到该数字。

Plunker的例子

 var s = "before 1900 and 2130 and (1900)" s=s.replace(/\s(?=\d)/g," $"); console.log(s);