jquery(js)字符串替换问题

时间:2010-01-06 18:26:02

标签: javascript jquery

我想突出显示字符串中的所有数字,我尝试用标记覆盖匹配的数字,但不能!这是我的代码

regexp = /[1-9]/g;
//$("#task").val() it's my input
title = $("#task").val().replace(regexp,'<span class="int">$1</span>');

$ 1 - 我在google中找到了一些样本,其中$ 1必须是第一个匹配的值,但它不起作用!

2 个答案:

答案 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>