我想突出显示字符串中的所有数字,我尝试用标记覆盖匹配的数字,但不能!这是我的代码
regexp = /[1-9]/g;
//$("#task").val() it's my input
title = $("#task").val().replace(regexp,'<span class="int">$1</span>');
$ 1 - 我在google中找到了一些样本,其中$ 1必须是第一个匹配的值,但它不起作用!
答案 0 :(得分:4)
$1
将替换正则表达式中匹配的第一个捕获组。
你的正则表达式没有任何捕获组,所以它没有做任何事情。
您需要将正则表达式括在括号中以使其捕获。
例如:
title = $("#task").val().replace(/([1-9])/,'<span class="int">$1</span>');
请注意,这与0
不符;你的意思可能是[0-9]
另请注意,这将使用<span>
标记围绕每个数字。如果您确实想要使用span标记(例如<span class="int">123</span>
)包围每个数字,则需要添加+
以告诉它匹配一个或多个数字,如下所示:
title = $("#task").val().replace(/([0-9]+)/,'<span class="int">$1</span>');
答案 1 :(得分:2)
var regexp = /(\d+)/g; // use \d to match all digits, + to capture one or more
var title = 'testing 123'.replace(regexp,'<span class="int">$1</span>');
结果:testing <span class="int">123</span>