用jquery替换字符串中的数字

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

blah blah 32 blah blah 

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

我可以做到这一点:

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

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

这有可能与jQuery?

谢谢你的任何想法。

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

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

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

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

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

而不是

 $('a#my_link') 

做得更好

 $('#my_link') 

就像我上面做的那样。

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

somethingelse替换somethingelse东西。 🙂

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

这适用于包含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'); 

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

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

完成后,测试每个单词的数字。 如果你发现数字使用jquery replaceWith()函数: http ://api.jquery.com/replaceWith/

希望有所帮助。