用jquery替换字符串中的数字

ne5o7dgx  于 2023-10-17  发布在  jQuery
关注(0)|答案(7)|浏览(118)

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

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

我知道这个字符串中只有一个数字。
我能走这么远:

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

但基本上我不知道如何在my_string上搜索一个数字,然后用其他东西替换这个数字。
jQuery可以吗?
谢谢你的任何想法。

yyhrrdl8

yyhrrdl81#

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

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

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

这样就不需要运行选择器两次。
此外,当您通过ID获取元素时,如果不包括标记名称,实际上会更快一些。
所以与其

$('a#my_link')

不如做

$('#my_link')

就像我在上面做的那样。

ttp71kqs

ttp71kqs2#

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

somethingelse换成别的东西。:)

c3frrgcw

c3frrgcw3#

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

ee7vknir4#

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

如果需要匹配更复杂的数据,比如指数表示法,或者带逗号的数字,则需要适当地修改正则表达式--如何修改取决于验证的严格程度。

sdnqo3pr

sdnqo3pr5#

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

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

dgsult0t

dgsult0t6#

首先,您需要使用split()函数在空格字符上拆分每个单词,并将结果发送到字符串数组。
一旦你这样做了,测试每个单词的数字。如果你找到了数字,使用jquery replaceWith()函数:http://api.jquery.com/replaceWith/
希望能帮上忙。

svdrlsy4

svdrlsy47#

<script>
let text = "1) hit this";
let result = text.match(/[0-9]\)/g);
let result1_ = text.replace(/[0-9]\)/g,'');
document.getElementById("demo").innerHTML = result_;
</script>

相关问题