Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在jQuery中使用正则表达式将字符前置到字符串_Javascript_Jquery_Regex - Fatal编程技术网

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

Javascript 在jQuery中使用正则表达式将字符前置到字符串,javascript,jquery,regex,Javascript,Jquery,Regex,我试图用正则表达式在某些字符串的开头添加一个字符,但我对它很陌生,似乎找不到我要找的答案。我有一些字符串,比如1499以下的和1900以上的,我想在数字字符串的开头添加一个$。下面是我要定位代码的内容(顺便说一句,这些都是div中的文本字符,带有一个精化\u price\u text类): 它会将它们注销到控制台。它们记录为带有一个项目的阵列。不过,我现在不知道如何给他们准备一个美元符号。我试过prepend(),但不起作用。我尝试将match()设置为变量,但没有成功。最初我想使用replac

我试图用正则表达式在某些字符串的开头添加一个字符,但我对它很陌生,似乎找不到我要找的答案。我有一些字符串,比如1499以下的
和1900以上的
,我想在数字字符串的开头添加一个
$
。下面是我要定位代码的内容(顺便说一句,这些都是div中的文本字符,带有一个精化\u price\u text类):

它会将它们注销到控制台。它们记录为带有一个项目的阵列。不过,我现在不知道如何给他们准备一个美元符号。我试过prepend(),但不起作用。我尝试将match()设置为变量,但没有成功。最初我想使用replace(),但我需要在那里维护当前值,只需在开头添加美元符号字符,我不知道正则表达式的$(this)等价物是什么,以便保持相同的值


让我知道这是否有意义。我相信一定有一个函数可以很容易地做到这一点?谢谢你的帮助

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

"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...) })

要忽略括号中的数字

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)"

对于简单的字符串,如您发布的lookahead regex和replace将起作用。 基本上是告诉正则表达式在字符串中找到第一个数字(但不要使用它),然后在前面加上一个美元符号。对于同一字符串中的多个数字,必须调整正则表达式

var s = "before 1900"
s=s.replace(/(?=[0-9])/,"$");
console.log(s);
修改为支持多个事件。它查找任何以空格开头的数字,然后在该数字前面加上美元符号


某些字符串中有多个数字。例如,有些人会说“高于1499(49)”,括号中的数字是数量。我如何忽略偏执论中的数字,而将其应用于字符串中的数字。我知道这是一个附加组件,但我刚刚意识到这是一个问题…谢谢你的帮助!字符串中是否总是只有一个价格值?如果是,只需删除
g
标志。某些字符串中有多个。非常感谢。我现在要学习你的代码,这样我就可以学习了。
var s = "before 1900"
s=s.replace(/(?=[0-9])/,"$");
console.log(s);
var s = "before 1900 and 2130 and (1900)"
s=s.replace(/\s(?=\d)/g," $");
console.log(s);