我需要根据俄语的规则将句子移到新行。一行中不应有超过“n”个字符,如果超出限制,则将单词移至下一行。
我的代码尝试:
"После использования этой команды вы получите информацию и статистику о себе".replace(/(.{42})/g,"$1\-\n")
如果行超过 42 个字符的限制,Regs 会换行。但是,转移并没有按照规则进行。
我需要根据俄语的规则将句子移到新行。一行中不应有超过“n”个字符,如果超出限制,则将单词移至下一行。
我的代码尝试:
"После использования этой команды вы получите информацию и статистику о себе".replace(/(.{42})/g,"$1\-\n")
如果行超过 42 个字符的限制,Regs 会换行。但是,转移并没有按照规则进行。
这个问题不能用正则表达式直接解决。如上所述,为了严格遵守规则,必须考虑单词的词素结构。
但是,以正则表达式为帮助,您仍然可以获得良好的结果。
首先,有几点注意事项:
鉴于上述情况,我组成了一个正则表达式:
在线查询
忽略某些单词带下划线的结尾。我对音节索引感兴趣,即 他们从哪里开始。还添加了工会和不符合 RV 基本规则的所有内容。
此外,算法很简单,我们查看索引,如果超出限制,我们会在之前的索引上进行转移。单词开头的单字母音节被忽略:
在我看来,相当满意的结果。您还可以玩常规赛季,例如,添加前缀。
如果规则规定你不能转/留下一封信,那么试试这个功能:
UPD:
是的,我搞砸了一点(对不起:))。不知道 split 如何在 js 中工作......这是更新的版本:
功能更长,但那些错误消失了。