Javascript 要插入“的正则表达式”\r";一行中每n个字符,在一个完整单词之前(基本上是换行功能)
我不熟悉JavaScript和正则表达式。我正在尝试将文本文档自动格式化为每行特定的字符数,或在单词前加“\r” 这在功能上类似于许多文本编辑器中的Wordwrap 我希望每行10个字符 原文:我的名字叫戴维·布鲁 修改:我的名字\ris Davey\r蓝色 看,如果第10个字符是一个单词,它会把整个单词放到一行 我认为下面的代码在某种程度上应该有用/{1,10}/(这应该可以找到任何10个字符,对吗?) 不知道剩下的怎么办Javascript 要插入“的正则表达式”\r";一行中每n个字符,在一个完整单词之前(基本上是换行功能),javascript,regex,data-processing,Javascript,Regex,Data Processing,我不熟悉JavaScript和正则表达式。我正在尝试将文本文档自动格式化为每行特定的字符数,或在单词前加“\r” 这在功能上类似于许多文本编辑器中的Wordwrap 我希望每行10个字符 原文:我的名字叫戴维·布鲁 修改:我的名字\ris Davey\r蓝色 看,如果第10个字符是一个单词,它会把整个单词放到一行 我认为下面的代码在某种程度上应该有用/{1,10}/(这应该可以找到任何10个字符,对吗?) 不知道剩下的怎么办 请帮忙。我不认为正则表达式能帮你做到这一点。我会在谷歌上搜索javas
请帮忙。我不认为正则表达式能帮你做到这一点。我会在谷歌上搜索javascript wordwrap,我肯定有人编写了一个库来为您实现这一点它需要是正则表达式吗?我会这样做:
var str = "My name is Davey Blue.",
words = str.split(/(\s+)/);
for (var i=0,n=0; i<words.length; ++i) {
n += words[i].length;
if (n >= 10) {
words[i] = "\n" + words[i];
n = 0;
}
}
str = words.join("");
var str=“我的名字是戴维·布鲁。”,
words=str.split(/(\s+/);
对于(变量i=0,n=0;i=10){
字[i]=“\n”+字[i];
n=0;
}
}
str=单词。连接(“”);
基本上
text = text.replace(/.{1,10} /g, "$&\n")
我确信您的意思是“\n”不是“\r”这将通过正则表达式实现
myString.replace(/((\w|\s){0,9}\s|\w+\s|$)/g, "$1\r")
(如果N是所需的线路长度,则将“9”替换为N-1)
在字符串中的每个位置,都会尝试按此顺序执行以下操作:1.尝试匹配最多9个字符(=尽可能多),后跟一个空格(因此在一个空格中最多有10个字符结尾),然后在后面插入\r(通过字符串替换)
2.如果此操作失败(因为找不到少于10个字符的单词),它将匹配一个单词(无论它有多长)加上一个空格,然后在此之后插入\r
3.它匹配字符串的结尾并插入\r
是否有任何特定的原因不只是使用浏览器内置的换行符?它不是关于正则表达式匹配,而是关于用正则表达式替换字符串的一部分