Javascript 字符串中每4个连续数字后换行
我有一个字符串如下所示:Javascript 字符串中每4个连续数字后换行,javascript,Javascript,我有一个字符串如下所示: "user modified avdd on december 1989user created avdd on august 21th, 2010" 我想在每四位数字后追加一行,因此最终结果将是: "user modified avdd on december 1989 user created avdd on august 21th, 2010" 我已经知道\/d/d/d/d\将匹配regex中的那些数字 我试着这样做:
"user modified avdd on december 1989user created avdd on august 21th, 2010"
我想在每四位数字后追加一行,因此最终结果将是:
"user modified avdd on december 1989
user created avdd on august 21th, 2010"
我已经知道\/d/d/d/d\
将匹配regex中的那些数字
我试着这样做:
var rows = "user modified avdd on december 1989user created avdd on august 21th, 2010";
var logs = row.replace(\/d/d/d/d\,"\n");
(然后循环执行.replace
)但结果忽略了结果中的4位数字
我可以不经许可更换吗?有更好的方法吗
编辑:按照建议,我尝试了.replace(/\d{4}/,“\n”)
问题是此输出会从最后一个字符串中删除数字:
所以我得到了
"user modified avdd on december
user created avdd on august 21th, 2010"
而不是期望的输出:
"user modified avdd on december 1989
user created avdd on august 21th, 2010"
你需要使用名为“捕获组”的功能 正则表达式部分周围的括号允许您捕获它并将其附加到替换的字符串中,如$1、$2等 此函数的作用是:
var logs = rows.replace(/(\d{4})/g,'$1\n');
(\d{4})=捕获4位数字的出现;
/g=替换所有事件的全局参数(因此执行后无需循环)
顺便说一下,从健壮性的角度来看,您需要确保用户的id中不能有4个连续的数字 U需要使用名为“捕获组”的功能 正则表达式部分周围的括号允许您捕获它并将其附加到替换的字符串中,如$1、$2等 此函数的作用是:
var logs = rows.replace(/(\d{4})/g,'$1\n');
(\d{4})=捕获4位数字的出现;
/g=替换所有事件的全局参数(因此执行后无需循环)
顺便说一下,从健壮性的角度来看,您需要确保用户的id中不能有4个连续的数字 你需要
\d
而不是/d
-你有你的\和/困惑-即/\d\d\d/
。。。或者更好的/\d{4}/
-您还需要全局(g)修饰符来执行them@JaromandaX您是正确的,但正如前面所述,即使使用.replace(/\d{4}/,“\n”)
也会从最后一个字符串中删除数字,不确定如何解决您需要的问题\d
不是/d
-您的\和/混淆了-即/\d\d\d/
。。。或者更好的/\d{4}/
-您还需要全局(g)修饰符来执行them@JaromandaX您是正确的,但正如前面所述,即使使用.replace(/\d{4}/,“\n”)
也会从最后一个字符串中删除数字,但不确定如何解决该问题