Javascript 如何在重复图案后添加换行符
假设有这样一个字符串:Javascript 如何在重复图案后添加换行符,javascript,regex,Javascript,Regex,假设有这样一个字符串: var content = "1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20"; 我想在每5点后添加 因此,结果应该是: 1.2.3.4.5.<br /> 6.7.8.9.10.<br /> 11.12.13.14.15.<br /> 16.17.18.19.20.<br /> 实际上,我想重构这段代码工作箱: var string=“1.2.3.4.5.6.7.8.
var content = "1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20";
我想在每5点后添加
因此,结果应该是:
1.2.3.4.5.<br />
6.7.8.9.10.<br />
11.12.13.14.15.<br />
16.17.18.19.20.<br />
实际上,我想重构这段代码工作箱:
var string=“1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20;”;
string=string.replace(/(([^\.]+\.){5})/g,“$1
”);
适用于点之间任何类型和长度的字符
说明:
模式/([^.]+){5})/g
可以按如下方式分解:
-任何非点的字符[^\.]
-任何非点的字符,一次或多次[^\.]+
-任何不是点的字符,一次或多次后跟点[^\.]+\.
-任何字符…点,出现五次([^\.]+\.{5}
-任何…五次,捕捉这个(所有括号捕捉,除非被告知不捕捉,括号内的第一件事是?:)(([^\.]+\.{5})
标志使整个字符串匹配,即找到所有匹配项/g/
表示第一组(或括号)的结果 因此,replace函数在字符串中查找模式的所有实例,并将它们替换为匹配本身+换行符(“$1”
)br
一旦你学会了正则表达式,生活就不一样了。每个人都想要一些东西,但我们需要努力实现它。那么你尝试过什么呢?它的可能复制品看起来很相似,但事实并非如此。我们可以知道5点,然后再加上br,每5点加上一个正则表达式是的,它正在工作,非常感谢兄弟:),我想,如果有人不知道问题的答案,他不应该写毫无价值的词:)加上一个解释,希望也有帮助!是的,你太神奇了,真的是真的,15行代码现在是2行代码:D
regenerate:function(content,call){
var data2;
var brbr = content.replace(/[\u0250-\ue007]/g, '').match(/(\r\n)/g);
if (brbr !== "") {
data2 = content.replace(/[\u0250-\ue007]/g, '').replace(/(\r\n)/gm, "<br><br>");
} else {
data2 = content.replace(/[\u0250-\ue007]/g, '');
}
var dataArr = data2.split(".");
for (var y = 10; y < dataArr.length - 10; y += 10) {
var dataArrSpecific1 = dataArr[y] + ".";
var dataArrSpecific2 = dataArr[y] + ".<br>";
var dataArrSpecificBosluk = dataArr[y + 1];
var data3 = data2.replace(new RegExp(dataArrSpecific1.replace(/[\u0250-\ue007]/g, ''), "g"), "" + dataArrSpecific2.replace(/[\u0250-\ue007]/g, '') + "");
data3 = data3.replace(new RegExp(dataArrSpecificBosluk.replace(/[\u0250-\ue007]/g, ''), "g"), " " + dataArrSpecificBosluk.replace(/[\u0250-\ue007]/g, '') + "");
data2 = data3;
}
call(data2.replace(/[\u0250-\ue007]/g, ''));
}
var string = "1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20." ;
string = string.replace(/(([^\.]+\.){5})/g, "$1<br/>");