javascript - 如何在正则替换时,对匹配部分进行算术运算?
黄舟
黄舟 2017-04-11 12:26:59
0
3
476
.banner{ min-height: 164px; img{ width:100%; } } p.search{ width:100%; height:45px; padding:5px 15px 0; p.col-xs-9{ padding-right: 0 }

我想在sublime中把所有px转化为rem,这时就需要把原来所有像素前面的数字都除以100,比如164px变成1.64rem;45px变成0.45rem;想利用ctrl+h直接进行正则替换,但却不知道怎么在正则中进行算术运算?

以下是我的尝试

这样肯定是不行的,比如164px会替换为164/100rem

请问Replace Witch部分怎么写?还是说正则无法进行算术运算??那这个问题有什么解决办法呢?

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回复 (3)
迷茫

我一般这么干,打开CHROME 控制台 → Source → Snippets(左边)
新建一个snippets,输入以下代码:

` .banner{ min-height: 164px; img{ width:100%; } } p.search{ width:100%; height:45px; padding:5px 15px 0; p.col-xs-9{ padding-right: 0 } `.replace(/\d+px/g, function(match){ return parseInt(match) / 100 + 'rem' })

ctrl+enter / 右键 run

如果你的chrome比较旧,就到elements写个,然后code.value.replace...

更多关于replace的用法看这里:JavaScript replace(RegExp, Function)详解

    迷茫

    ~~这可能需要更强大的正则,Perl 6可以支持这种东西,不知道其它语言有没有,希望对你有启发。。

    my $x = "123 * 456 = 123x456"; if $x ~~ s/(\d+)x(\d+)/{$/.[0] * $/.[1]}/ { say $x; }

    测试网址:ideone测试-kV75f3

      迷茫

      略微蛋疼,sublime有专门的插件可以转化,或者找个编译软件——考拉,用less写,鉴于你只要rem计算,都不需要你懂less,随便定义个变量,考拉会实时编译成css,调用就行了

        最新下载
        更多>
        网站特效
        网站源码
        网站素材
        前端模板
        关于我们 免责声明 Sitemap
        PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!