如何在JavaScript中拆分15个字符后的第一个空格后的字符串



我已经阅读了这篇文章中的解决方案。如何在javascript中的某个字符后面的空格处拆分字符串?

它在一定程度上起作用。但我正在努力实现的目标略有不同。

我有一个限制为40个字符的用户输入。我正在接受输入并将其显示在屏幕上。但是,我需要将输入拆分为大约20个字符,然后将剩余部分插入下一行。并且它最多只能在两条线上进行

更新::我还应该在这里提到,除了在前端显示文本外,我们还需要将字符串传递到后端。但是,我们需要插入n,而不是用<br/>来发送它,以便在后端系统中强制使用新行。

最终,每行不能超过20个字符。然而,它需要是动态的,这样,如果用户输入的字符串是30个字符,但空格在第20个字符之前,我如何调整它,使其在第20字符之前的空格处拆分?-我希望这是有道理的。

例如

TEXT12345 STRING46789

应该像这个一样出现

TEXT12345

字符串46789

但是,还有以下

文本字符串EF

这里的新线

每行最多需要20个字符,并且我不能强制使用连字符。

下面的代码是我所做的,但它不太好用,因为我经常在空格前得到"undefined"。此外,它不会动态地寻找20个字符限制之前的空间

Child1Name.keyup(function(e) {
var stringValue = Child1Name.val();
if (stringValue.length > 19) {
let [firstLine, secondLine] = stringValue.replace(/.{20}S*s+/g, "$&@").split(/s+@/)

previewChild1Name.html(firstLine + "<br/>" + secondLine);

}else{
previewChild1Name.text(stringValue);

}
});

如有任何帮助,我们将不胜感激。

您可以编写如下函数。首先用空格分割字符串,然后在其上循环以附加单词。如果在追加一个新单词后超过了长度,则将现有单词添加到arr并清除当前字符串。

请尝试下面的代码。

function getSplittedString(s, length) {
let arr = [];
let str = '';
s.split(' ').forEach(x => {
if (str !== '' && (str + ' ' + x).length > length) {
arr.push(str);
str = '';
}
str = (str + ' ' + x).trim();
});
if (str !== '') {
arr.push(str);
}
return arr.join('<br/>')
}
console.log(getSplittedString('TEXT12345 STRING46789', 20));

从我在这个网站上看到的和发现的:mdn网站

您可以像这样在字符串值(应该是整个字符串(上使用split(对字符串(;

var stringvalue = 'TEXT12345 STRING46789';
var words = str.split(' '); // what charater need to cut the string
console.log(words[0]);
// expected output: "TEXT12345"

很抱歉急于回答,有点忙。希望这能有所帮助。

最新更新