你能用Jquery处理字符串中的数字吗
Can you manipulate a number within a string with Jquery?
我有一些字符串,比如:
<p>It will vary from 100g to 200g</p>
<p>2lbs of meat</p>
<p>3 piles of timber</p>
等等
我想递增/递减每个字符串中的所有数字。有指针吗?
附加说明:
- 不,数字可以在字符串中的任何位置
- @cookie_monster我想看看如果没有通常的操作,这是否可行
一个简单的解决方案是使用正则表达式,例如:
"100g".replace(/'d+/g, function(n) { return +n + 1; }); // 101g
说明:
- 模式
'd+
匹配字符串中一个或多个数字的任何序列。- 此模式仅将您限制为整数;如果你用
"3.5"
尝试这个,它会认为这是两个独立的整数,结果是"4.6"
- 如果这是一个问题,请使用类似
('d+'.)?'d+
的模式
- 此模式仅将您限制为整数;如果你用
- 模式上的全局标志(
g
)表示这将替换字符串中的所有数字序列。- 如果您只想替换第一个实例,请删除它
- 函数接受匹配的子字符串(在本例中为
"100"
),然后将其转换为数字(+n
),加1,并返回结果。这个结果被转换回字符串,并替换模式匹配的内容
要使用jQuery在HTML元素中实现这一点,您可以简单地使用以下内容:
$('p').each(function() {
var e = $(this);
e.text(e.text().replace(/'d+/g, function(n) { return +n + 1; }));
});
您可以使用正则表达式来匹配字符串中的数字,并使用回调函数来解析和更改数字。
示例:
var s = "There are 4 lights.";
s = s.replace(/'d+/g, function(m){
return parseInt(m, 10) + 1;
});
演示:http://jsfiddle.net/6YJQx/
要在几个元素上执行此操作,可以使用带有回调的text
方法:
$('p').text(function(i, s){
return s.replace(/'d+/g, function(m){
return parseInt(m, 10) + 1;
});
});
演示:http://jsfiddle.net/6YJQx/1/
是的,你可以,但要做到这一点,你需要在跨度中给出数字。<span> 100g </span>
。然后,使用jQuery.text,您可以对数字进行递增、递减等操作。
相关文章:
- 使用正则表达式匹配长度为六个字符的字母数字字符串
- Javascript-使用“”将toDateStringMonth从文本字符串解析为数字字符串;如果“;vs“;开关”;
- 在数字字符串的最后两个数字上加上小数
- 在JavaScript中,增加字母数字字符串末尾的数字
- 如何对字母数字字符串值进行排序
- 从数字字符串中获取整数
- Regex用于字母数字字符串中的数字计数
- 如何使用 Javascript/jQuery 将数字字符串递增 +1
- 使用 javascript 计算数字字符串
- parseInt 用于分析数字字符串的替代方法
- 任何输入或文本区域中数字字符串的事件侦听器
- Javascript:生成唯一数字字符串的最佳方法是什么
- JavaScript 中的随机字母数字字符串
- Google Charts - hAxis 上的数字/字符串问题(Jquery ajax JSON 数据)
- Lodash _.sortByOrder 数字字符串
- JavaScript 中一位数数字字符串的总和
- 在JavaScript中将非数字字符串转换为数字
- 使用 Lodash 对数字字符串数组进行排序
- 检查数字字符串是否包含十进制
- 显示以数字字符串形式存在的类