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