javascript替换为正则表达式

时间:2013-11-18 14:47:41

标签: javascript regex

在这种情况下如何使用javascript替换正则表达式?

<div id="content" style="left: 200px">
=><div id="content" style="left: -200px">

var num = $('#content').attr('style');
alert(num.replace.replace('/[0-9]+/g','-\\$1'));


<div id="content" style="left: -200px">
=><div id="content" style="left: 200px">

var num = $('#content').attr('style');
alert(num.replace.replace('/-[0-9]+/g','\\$1'));

我的代码似乎不起作用,需要帮助。感谢名单。

4 个答案:

答案 0 :(得分:1)

使用$&表示第二个参数中的匹配值。这是.replace的JavaScript功能,而不是正则表达式的功能。

var x = "left: 200px".replace(/\d+/,'-$&')
// x == "left: -200px"

答案 1 :(得分:1)

$1指的是第一个捕获组 - 其中没有。正如约翰所说,你可以使用$&来引用整场比赛。

要使用$1,您需要在匹配项周围放置()以创建捕获组/([0-9]+)/g

答案 2 :(得分:1)

这样做:

$('#content').css('left', function (i, value) {
    return -parseInt(value);
});

这是一个演示(点击红色框):http://jsfiddle.net/wared/s6M43/

答案 3 :(得分:0)

replace也需要一个函数,你可以做类似

的事情
var str = '<div id="content" style="left: 200px"> => <div id="content" style="left: -200px">';
str.replace(/(-?)([0-9]+)/g, function(match, sign, px) { return '-' == sign ? px : '-' + px })
//'<div id="content" style="left: -200px"> => <div id="content" style="left: 200px">'
相关问题