js 正则表达式,如何从右边开始替换

Sunhk_25 2014-09-26 10:50:15
如题。这个能从右边每四个加一个逗号,可是我想要的是从右边每隔四位一组,把最左边的加上括号。
//例如:12<3>456<7>890
var str = '1234567890';
console.log(str.replace(/(?=(?:\d{4})+(?!\d))/g,','));//12,3456,7890
...全文
439 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
___紫菜 2014-09-26
  • 打赏
  • 举报
回复
正则不太会弄写了个js
 $(function () {
            s = '12343563233';
            d = []
            c = []
            for (i = 0; i < s.length; i++) {
                d.push(s.charAt(i))
            }
            var a = "";
            var v = (d.length) % 4;
            for (j = d.length - 1; -1 < j; j--) {
                if ((j - v) % 4 == 0) {
                    d[j] = "<" + d[j] + ">";
                    a += d[j];
                }
                c.push(d[j]);
            }
            var d = "";
            for (var n = c.length - 1; -1 < n; n--) {
                d += c[n];
            }
            alert(d);
        });
csucaicai 2014-09-26
  • 打赏
  • 举报
回复
你拼接下就好了啊,(<'+获取制定位置字符+'>')
BeautyMyth 2014-09-26
  • 打赏
  • 举报
回复
先把字符串反转 替换完了后 再反转回去
___紫菜 2014-09-26
  • 打赏
  • 举报
回复
引用 6 楼 Sunhk_25 的回复:
[quote=引用 3 楼 u013116426 的回复:] 正则不太会弄写了个js;[/code]
问题已解决,如下 str.replace(/(\d)(\d{3})(?=(?:\d{4})*(?!\d))/g,'<$1>$2'); [/quote] 嗯 正则就是好用。我得好好琢磨。
Sunhk_25 2014-09-26
  • 打赏
  • 举报
回复
引用 3 楼 u013116426 的回复:
正则不太会弄写了个js;[/code]
问题已解决,如下 str.replace(/(\d)(\d{3})(?=(?:\d{4})*(?!\d))/g,'<$1>$2');
Sunhk_25 2014-09-26
  • 打赏
  • 举报
回复
引用 2 楼 csucaicai 的回复:
你拼接下就好了啊,(<'+获取制定位置字符+'>')
问题已解决,如下 str.replace(/(\d)(\d{3})(?=(?:\d{4})*(?!\d))/g,'<$1>$2');
Sunhk_25 2014-09-26
  • 打赏
  • 举报
回复
引用 1 楼 cjsyr_cjsyr 的回复:
先把字符串反转 替换完了后 再反转回去
那样<3> 就会变成>3< 问题已解决,如下 str.replace(/(\d)(\d{3})(?=(?:\d{4})*(?!\d))/g,'<$1>$2');

87,904

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧