Javascript 您可以使用Jquery操作字符串中的数字吗?
我有这样一些字符串:Javascript 您可以使用Jquery操作字符串中的数字吗?,javascript,jquery,string,numbers,Javascript,Jquery,String,Numbers,我有这样一些字符串: <p>It will vary from 100g to 200g</p> <p>2lbs of meat</p> <p>3 piles of timber</p> 它将从100g到200g不等 2磅肉 3堆木材 等等 我想递增/递减每个字符串中的所有数字。 有什么建议吗 附加说明: 不,数字可以在字符串中的任何位置 @cookie_monster我想看看如果不进行常规操作是否可行 一个简单的解决
<p>It will vary from 100g to 200g</p>
<p>2lbs of meat</p>
<p>3 piles of timber</p>
它将从100g到200g不等
2磅肉
3堆木材
等等
我想递增/递减每个字符串中的所有数字。
有什么建议吗
附加说明:
一个简单的解决方案是使用,例如:
"100g".replace(/\d+/g, function(n) { return +n + 1; }); // 101g
说明:
- 模式
匹配字符串中一个或多个数字的任何序列。\d+
- 此模式仅限于整数;如果你尝试使用<代码>“3.5”<代码>,它会认为这是两个独立的整数,结果是<代码>“4.6”< /代码>。<李>
- 如果这是一个问题,请使用类似
的模式(\d+\)?\d+
- 模式上的全局标志(
)意味着这将替换字符串中的所有数字序列。g
- 如果只想替换第一个实例,请删除此选项
- 函数接受匹配的子字符串(在本例中为
),然后将其转换为一个数字(“100”
),添加1,并返回结果。此结果将转换回字符串,并替换模式匹配的内容+n
$('p').each(function() {
var e = $(this);
e.text(e.text().replace(/\d+/g, function(n) { return +n + 1; }));
});
是的,你可以,但要做到这一点,你需要给出跨度中的数字<代码>100g。
然后,使用jQuery.text,您可以对数字进行递增、递减等操作。您可以使用正则表达式匹配字符串中的数字,并使用回调函数解析数字并对其进行更改 例如:
var s = "There are 4 lights.";
s = s.replace(/\d+/g, function(m){
return parseInt(m, 10) + 1;
});
演示:
要在多个元素上执行此操作,可以使用带有回调的text
方法:
$('p').text(function(i, s){
return s.replace(/\d+/g, function(m){
return parseInt(m, 10) + 1;
});
});
演示:数字总是在开头吗?您可以从文本中提取数字值,将其转换为数字,对其进行操作,然后将其连接回。号码总是在开头吗?会不会有不止一个?弦是从哪里来的?它们在DOM中吗?你的一些HTML怎么样,这样我们可以把你推向正确的方向?嗨,布拉德利,我已经更新了帖子。什么是“通常的操作”?为了简单起见+1。为了狙击我,您需要对找到的值执行
parseInt()
,因为除非您指定,否则JS喜欢将内容视为字符串it@Derek-注意+
@derek:一元加号运算符在这里更有意义。@adeneo:我想他说的是十六进制语法。你的意思是100g
。此外,元素中的文本仍然是文本,您需要将其解析为数字以对其进行算术运算。