用jquery替换字符串中的数字

问题描述 投票:8回答:6

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

ie

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

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

我可以做到这一点:

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

但是基本上我不知道如何在my_string上搜索数字并将其替换为其他数字。

使用jQuery是否可能?

感谢任何想法。

jquery
6个回答
14
投票

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

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

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

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

另外,当您通过元素的ID获取元素时,如果不包括标签名称,则实际上要快一些。

所以代替

$('a#my_link')

最好这样做

$('#my_link')

就像我上面所做的。


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

用其他东西替换somethingelse。 :)


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

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');

如果您仍然需要更复杂的匹配(例如指数符号或带有逗号的数字,则需要适当修改正则表达式-具体操作取决于您要验证的严格程度。


0
投票

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

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

希望有所帮助。


0
投票

如果需要提取编号,然后替换为其他值。

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>"

© www.soinside.com 2019 - 2024. All rights reserved.