用正则表达式替换javascript

javascript replace with regex

本文关键字:javascript 替换 正则表达式      更新时间:2023-09-26

在这种情况下如何使用javascript替换regex?

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

我的代码似乎不起作用,需要帮助。thanx。

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

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

$1指的是第一个捕获组,您没有该捕获组。正如约翰所说,你可以用$&来指代整个比赛。

要使用$1,您需要将()放在您的比赛周围,以创建捕获组/([0-9]+)/g

只需执行以下操作:

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

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

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