一道正则表达式问题 <script> var txt = "12345678"; alert(txt.replace(/(?=\d+)(\d{3})/gi, "$1,"));</script>为什么这个返回的结果是123,456,78呢,这个正则表达式的匹配过程又是怎样? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 怎么我记得(?=)一般是放在后面的,根据我这里的测试,你这个匹配不到任何东西,自动等价于<script> var txt = "12345678"; alert(txt.replace(/(\d{3})/g, "$1,"));</script> 比如这段代码<script> var txt = "a123"; alert(txt.replace(/(?=[a-z])(\d{3})/g, "$1,"));</script>按照正则表达式字面上的意思就是匹配三个数字,并且这三个数字前面带有一个小写字母,可是为什么匹配不到任何内容呢?最合理的解释就是"(?=)"不能放在第一位?那么下面一段代码不是又有矛盾了吗? <script> var txt = "a123a"; alert(txt.replace(/[a-z](\d{3})(?=[a-z])/, "$1,")); //输出结果是"123,a"</script>前面的a不知道跑哪去了 按照我的理解,(?=a)意思是匹配a这个字符前面的一个位置,比如"123a".match(/.*(?=a)/)的结果是 ["123"]需求一般是:我知道找一串字符,我只知道这串字符的后面是接着一个"a"的你好像是想要这样:我知道找一串字符,我只知道这串字符的前面是接着一个"a"的这时正规的正则是用(?<=)的,但是javascript并不支持这个正则。=============================================var txt = "a123"; alert(txt.replace(/(?=[a-z])(\d{3})/g, "$1,"));这一段我也不太会解释了============================================== var txt = "a123a"; alert(txt.replace(/[a-z](\d{3})(?=[a-z])/, "$1,")); //输出结果是"123,a"这段就很明显哦,你分了组,$1当然是取第一组(\d{3})了你想有a就这样嘛 var txt = "a123a"; alert(txt.replace(/([a-z]\d{3})(?=[a-z])/, "$1,")); 刚才把replace搞混了,也只能这样解释了,我没啥需求,只是刚才测试的时候觉得结果很奇怪,呵呵,散分结贴。ps:加我QQ,823797837 购物网站 创新设计【主要是首页这块】 解决即刻放分 请教如何获得页面上的条目数量 radio自动选中的问题--100分 关于鼠标点击问题! document.getElementById 问题? 为什么IE有这个提示?如和去掉该提示? 请问,在JScript中如何统计中文字符的实际长度。(JScript有没有内部支持的函数) 急问,A窗口和B窗口都可以打开C窗口,如何使C窗口关闭的时候,返回到打开它的窗口?? 运行javascript的程序对ie的版本有要求马? radio框选中如何赋值给多个input? 求助---js动态添加label标签后,怎么删除呢?
<script>
var txt = "12345678";
alert(txt.replace(/(\d{3})/g, "$1,"));
</script>
比如这段代码<script>
var txt = "a123";
alert(txt.replace(/(?=[a-z])(\d{3})/g, "$1,"));
</script>按照正则表达式字面上的意思就是匹配三个数字,并且这三个数字前面带有一个小写字母,可是为什么匹配不到任何内容呢?最合理的解释就是"(?=)"不能放在第一位?那么下面一段代码不是又有矛盾了吗? <script>
var txt = "a123a";
alert(txt.replace(/[a-z](\d{3})(?=[a-z])/, "$1,"));
//输出结果是"123,a"
</script>
前面的a不知道跑哪去了
"123a".match(/.*(?=a)/)的结果是 ["123"]
需求一般是:我知道找一串字符,我只知道这串字符的后面是接着一个"a"的你好像是想要这样:我知道找一串字符,我只知道这串字符的前面是接着一个"a"的
这时正规的正则是用(?<=)的,但是javascript并不支持这个正则。=============================================var txt = "a123";
alert(txt.replace(/(?=[a-z])(\d{3})/g, "$1,"));这一段我也不太会解释了============================================== var txt = "a123a";
alert(txt.replace(/[a-z](\d{3})(?=[a-z])/, "$1,"));
//输出结果是"123,a"这段就很明显哦,你分了组,$1当然是取第一组(\d{3})了你想有a就这样嘛
var txt = "a123a";
alert(txt.replace(/([a-z]\d{3})(?=[a-z])/, "$1,"));
ps:加我QQ,823797837