用jquery替换字符串中的数字

时间:2010-07-31 13:31:08

标签: jquery

我有一个字符串,其中有一个数字,我想用另一个数字代替。

<a href="" id="my_link">blah blah 32 blah blah</a>

我知道这个字符串中只有1个数字。

我可以做到这一点:

var my_string = $('a#my_link').text();

但基本上我不知道如何在my_string上搜索数字并用其他内容替换该数字。

这可以用jQuery吗?

感谢任何想法。

6 个答案:

答案 0 :(得分:13)

许多jQuery方法(如.text())都可以接受一个返回值的函数。

试一试: http://jsfiddle.net/6mBeQ/

$('#my_link').text( function(i,txt) {return txt.replace(/\d+/,'other value'); });

这消除了两次运行选择器的需要。

此外,当您通过ID获取元素时,如果您不包含标记名称,它实际上会更快一些。

所以而不是

$('a#my_link')

最好做

$('#my_link')

正如我上面所做的那样。

答案 1 :(得分:4)

var new_string = $('a#my_link').text().replace(/[0-9]+/, "somethingelse")

somethingelse替换为其他内容。 :)

答案 2 :(得分:2)

这适用于包含0 - 9的简单自然数。

var my_string = $('a#my_link').text().replace(/[0-9]+/, 'replacement');

如果您需要匹配更复杂的数字,例如小数和负数,那么这将起作用:

var my_string = $('a#my_link').text().replace(/-?[0-9]*\.?[0-9]+/, 'replacement');

如果你需要匹配更复杂的静态,如指数表示法或带逗号的数字,你需要适当地修改正则表达式 - 你如何做到这将取决于你想要验证的严格程度。

答案 3 :(得分:2)

$('a#my_link').text($('a#my_link').text().replace(/\d+/,'something'));

答案 4 :(得分:1)

如果需要提取数字,然后用其他值替换。

let temp ="<polygon points=' 42,4874 936,4874 936,3434 42,3434'></polygon>"
temp.replace(/(\d+)/g,v=>v*10)

每个数字乘以10

结果将为"<polygon points=' 420,48740 9360,48740 9360,34340 420,34340'></polygon>"

答案 5 :(得分:0)

首先,您需要通过使用split()函数拆分空格字符来循环遍历每个单词,并将结果发送到字符串数组。

一旦你这样做,测试每个单词的数字。如果找到数字,请使用jquery replaceWith()函数:http://api.jquery.com/replaceWith/

希望有所帮助。