jquery如何正则表达式css风格积极到消极,消极到积极?

时间:2013-12-30 16:45:55

标签: javascript css regex

jquery如何正则表达式css样式积极到消极,消极到积极?

var aaa='<p style="top:10px;left:-10px;">text</p>';
aaa.attr('style').replace(/\-/gi,'').replace(/\d+/gi,'-$&');//this will replace negative to positive, then positive to negative, so nothing change

但我需要一些效果:

top:10px;left:-10px; => top:-10px;left:10px;

然而,风格可能是其他规则。另一个例子:

top:-100px;left:200px; => top:100px;left:-200px;

3 个答案:

答案 0 :(得分:3)

正如Rooster评论的那样,使用一个将匹配数乘以-1的函数。函数的返回值用作替换字符串。

var aaa='<p style="top:10px;left:-10px;">text</p>';
aaa.replace(/[-\d]+/g, function(x) { return -parseInt(x); })
// => "<p style="top:-10px;left:10px;">text</p>"

答案 1 :(得分:0)

使用jQuery你可以这样做:

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

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

答案 2 :(得分:0)

我知道你的问题是'jquery如何将正则表达式从积极到消极,消极到积极?不知道你想要实现什么,但也许这是一个css解决方案?

$('.content').click(function () {
$(this).toggleClass("left");
});

http://jsfiddle.net/aronez/s6M43/4/

迎接