我有一个文本字符串,我想在 javascript 中通过波形符 (~) 每 60 个字符进行分割。
我有;
UXXXXXXquXXX pXXXtXXXXXXXXXt ID:~XXXTEST COPYXXX~XXXGXXXstrosXXXopy RXXXportXXX~NXXXXXXXXX:XXXDELTAXXX,DXXXXXXsy~CXXXsXXX XXXotXXX XXXo:XXX999999999XXX~45678:XXXXXX~DXXXtXXX oXXX XXXXXXrtXXX:XXX18\12\1968XXX~AXXXXXXrXXXs s: TXXXXXX NXXXw StrXXXXXXt、TXXXXXX ArXXXXXX、CXXXXXXstXXXr , . CZZZL~ZZ:测试,TXXXXXX GrXXXXXXt SuttoXXX MXXXXXX.Ctr。 (XXXXXXuXXX)、TXXXXXX GrXXXXXXt SuttoXXX MXXXXXX.Ctr.、OXXXXXX CXXXXXXstXXXr RoXXXXXX、GrXXXXXXt SuttoXXX、EXXXXXXXXXsXXXXXXrXXX 端口、ZZZ ZPB~XXXProXXXXXXXXXurXXX XXXXXXtXXX:XXX 29\03\2016~XXXStXXXtus:XXX ~XXXWXXXrXXX:XXX (XXXoXXXXXX)~XXXBUILDINGXXXtXXXXXX:XXX 公司uXXXtXXXss oXXX CXXXXXXstXXXr~XXXRXXXXXXXXXrrXXXXXXXXX XXXoXXXsuXXXtXXXXXXt:XXX ZZ (GPwer)~XXXCoXXXsuXXXtXXXXXXt\EXXXXXXosXXXopXXXst:XXX LXXXst XXXoXXXsuXXXtXXXXXXt:XXX EXXXXXXosXXXopXXXst No1: ZZZ 先生 vXXXXXXs HelloXXXs: NXXXXXXoXXXXXX AsXXX StXXXXXXXXXXXX BXXXzXXXXXXt~XXXIXXXstruXXXXXXXXXt:XXX 11 GIF1T240 2130131~XXXPrXXXXXXXXXXXXXXXXXXt XXXoXXX:XXX ~XXXIXXXXXXXXXXXXXXXtXXXoXXXs:XXX ~XXXRXXXport:XXX TXXXXXX proXXXXXXXXXurXXX wXXXs XXXoXXXpXXXXXXtXXXXXX suXXXXXXXXXssXXXuXXXXXXy 至D2。 ~XXXDXXXXXXXXXXXXosXXXs:XXX ~XXXTXXXXXXrXXXpXXXutXXXXXX proXXXXXXXXXurXXXs:XXX ~XXXSpXXXXXXXXXXXXXXXXXXs TXXXXXXXXXXXX:XXX ~XXXMXXXXXXXXXXXXXXXtion:XXX ~XXX跟进:XXX ~XXX建议\评论:XXX ~
该字符串有许多波浪号,这很好,很高兴将它们保留原样。但在某些情况下,如果代号之间的字符数大于 60,我想通过在第 60 个字符点添加另一个代号来分割该部分(代号到代号)。然后重新开始,到下一个波形符。
基本上每个波形符之间的字符数不应超过 60 个,少于此长度即可。
尝试过很多功能,最后一次。
function addtilde(str) {
var result = '';
while (str.length > 0) {
result += str.substring(0, 60) + "~";
str = str.substring(60);
}
return result;
}
不高兴,任何想法将不胜感激。
最佳答案
对该字符串使用replace
。这是一个单行代码,用于查找“无波浪号,最多 60 次,可选后跟波浪号”,并返回非波浪号部分加上波浪号。
str = str.replace ("([^\~]{1,60})\~?",
function (fullmatch, partmatch) { return partmatch+'~'; }, "g");
关于javascript - 如果两个波浪号之间的字符数大于 60,则在两个波浪号字符之间添加波浪号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36479753/