正则表达式问题 JavaScript正则

varstr1='awergsffdasrty456rtrty45123456789dsfyghdjgjdg',str2='<ddclass="goods-price">... var str1 ='awergsffdas rty456rtrty45123456789dsfyghdjgjdg'
, str2 ='<dd class="goods-price"> <em>¥99.00</em> </dd>';
正则1:
str.replace(/(?=[0-9]+)[4-6](?=[0-9]+)/,'*');
//结果:awergsffdas rty**6rtrty**123***789dsfyghdjgjdg
正则2:
str2.replace(/(?=[¥])[0-9]+[.]?[0-9]+?(?=<)/,'12.05');//没有变化

为什么1和2都是一样的句式 第二个没有效果 没匹配到99.00
/(?:[¥])[0-9]+[.]?[0-9]+?(?=<)/可以匹配到¥99.00 但明显¥不是想要的结果
展开
 我来答
yeda999
2016-10-13 · TA获得超过126个赞
知道小有建树答主
回答量:181
采纳率:100%
帮助的人:64.6万
展开全部
用 (?<=[¥])[0-9]+[.]?[0-9]+?(?=<)
更多追问追答
追问
/(?<=[¥])[0-9]+[.]?[0-9]+?(?=<)/.test('')
VM11193:2 Uncaught SyntaxError: Invalid regular expression: /(?<=[¥])[0-9]+[.]?[0-9]+?(?=<)/: Invalid group
请注意,是JavaScript,不是後端,後端当然可以这样
追答
那就不要用零宽断言,直接获取替换第一个分组替换 ¥([0-9]+[.]?[0-9]+?)<
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式