javascript - js 正向预查的正则 匹配不上?
代言
代言 2017-06-26 10:56:06
[JavaScript讨论组]

目的:去除大括号右边的空格。
下面的可以:
//第一个
var a = "我是空格 {我是参数} 我前面 {我是参数} 有空格 我前面的空格不匹配";
hand_trim1(a);
function hand_trim1(str){

return str.replace(/(?:\})\s+/g,'}');

}

//第二个
var a = "我是空格 {我是参数} 我前面 {我是参数} 有空格 我前面的空格不匹配";
hand_trim2(a);
function hand_trim2(str){

return str.replace(/}\s+/g,'}');

}

//第三个(这个为什么就是匹配不上呢????????)
var a = "我是空格 {我是参数} 我前面 {我是参数} 有空格 我前面的空格不匹配";
hand_trim3(a);
function hand_trim3(str){

return str.replace(/(?=\})\s+/g,'');

}

代言
代言

全部回复(1)
仅有的幸福

正向预查是零宽,意思就是宽度是0,只是匹配一个位置,只要这个位置满足就可以,并不匹配具体的内容;
(?=\})匹配的位置应该是在这个位置后面有一个}
\s+表示从这个位置起,后面跟着空白符;
所以,满足上面两个条件的位置是这个位置后面的字符即是},又是空白符,因此,这种位置根本不存在,所以不匹配;
其实这个位置应该是左边是一个},右边是\s+,但是js没有负向断言,无法预测左侧的字符类型。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号