Javascript 将字符串拆分为两个,长度几乎相同

Javascript 将字符串拆分为两个,长度几乎相同,javascript,string,split,string-length,Javascript,String,Split,String Length,我有一个字符串:“这是一个示例字符串”,我需要将其拆分为两个字符串,不打断单词,并且这两个字符串的长度最接近,因此结果将是: ["This is a", "sample string"]. 另一个e.x: "Gorge is nice" => ["Gorge", "is nice"] 另外,如果函数可以作为param获得我将作为结果获得的元素数,这也会很好 谢谢你的帮助 您可以按空格分隔单词 e、 g: var words = 'George is nice' words = word

我有一个字符串:“这是一个示例字符串”,我需要将其拆分为两个字符串,不打断单词,并且这两个字符串的长度最接近,因此结果将是:

["This is a", "sample string"].
另一个e.x:

"Gorge is nice" => ["Gorge", "is nice"]
另外,如果函数可以作为param获得我将作为结果获得的元素数,这也会很好


谢谢你的帮助

您可以按空格分隔单词

e、 g:

var words = 'George is nice'
words = words.split(' ')
然后遍历数组并比较字符串长度。 举例来说

var concat = ''
for (var word in words)
{
    word = words[word]
    if (word.length < words[word - 1] )
    {
        concat += word
    }
}
var concat=''
for(字中的var字)
{
单词
if(字长
很高兴知道为什么它必须只有2个元素,而不是单词的数量? 你要找什么算法吗?还是只想将所需的最少文本组合在一起


很高兴看到你为什么需要这个。

你可以用空格分隔你的单词

e、 g:

var words = 'George is nice'
words = words.split(' ')
然后遍历数组并比较字符串长度。 举例来说

var concat = ''
for (var word in words)
{
    word = words[word]
    if (word.length < words[word - 1] )
    {
        concat += word
    }
}
var concat=''
for(字中的var字)
{
单词
if(字长
很高兴知道为什么它必须只有2个元素,而不是单词的数量? 你要找什么算法吗?还是只想将所需的最少文本组合在一起


很高兴看到您为什么需要它。

您可以使用
indexOf
,第二个参数作为字符串长度的一半。这样,
indexOf
将在提供的索引之后搜索匹配字符串的下一个索引

var str=“Thisasdfasdfasdfasdfasdf是一个示例字符串”,
len=str.长度;
var ind=str.indexOf(“”,数学楼层(str.length/2)-1);
ind=ind>0?ind:str.lastIndexOf(“”);
var str1=str.substr(0,ind),
str2=str.substr(ind);

编写(str1+'
'+str2)
您可以使用
indexOf
,第二个参数作为字符串长度的一半。这样,
indexOf
将在提供的索引之后搜索匹配字符串的下一个索引

var str=“Thisasdfasdfasdfasdfasdf是一个示例字符串”,
len=str.长度;
var ind=str.indexOf(“”,数学楼层(str.length/2)-1);
ind=ind>0?ind:str.lastIndexOf(“”);
var str1=str.substr(0,ind),
str2=str.substr(ind);

编写(str1+'
'+str2)您可以尝试像这样的拆分器

函数拆分(str){
var len=str.length,
mid=数学楼层(len/2);
var left=mid-str.substring(0,mid).lastIndexOf(“”),
右=str.indexOf(“”,中间)-中间;
var ind=中间+(左<右?-左:右);
返回[str.substr(0,ind),
str2=str.substr(ind)
];
}
var部分=拆分(“123-456 3-5-asldfkjas kdfasdfasd fjas”);
log(部分[0]);
log(第[1]部分)

您可以尝试像这样的拆分器

函数拆分(str){
var len=str.length,
mid=数学楼层(len/2);
var left=mid-str.substring(0,mid).lastIndexOf(“”),
右=str.indexOf(“”,中间)-中间;
var ind=中间+(左<右?-左:右);
返回[str.substr(0,ind),
str2=str.substr(ind)
];
}
var部分=拆分(“123-456 3-5-asldfkjas kdfasdfasd fjas”);
log(部分[0]);
log(第[1]部分)


你可以像这样计算单词数,然后拆分文本。计算单词数,然后在总单词数的一半处拆分,在空白空格Ziki检查中,也可以看到@Tushar两个都不使用此示例:“thisasdfasdfasdfasdfasdfasdf是一个示例字符串”这个问题有这么多答案真是不可思议。这是一个很小的问题,OP甚至没有说他尝试了什么以及他遇到了什么困难。你可以像这样计算单词,然后拆分文本。计算单词,然后拆分为总单词的一半,在空白空格中Ziki检查,请参见@Tushar Due不使用此示例:“Thisasdfasdfasdfasdfasdf是一个示例字符串”这个问题有这么多答案,真是不可思议。这是一个很小的问题,OP甚至没有说他尝试了什么,他遇到了什么困难。我需要在两个地方保存他们来展示他们,但是他们会有相同的长度。我需要在两个地方保存他们来展示他们,但是他们会有相同的长度length@ArunPJohny感谢您指出,添加
ind=ind>0?ind:str.lastIndexOf(“”)将解决问题problem@Tushar如果我需要将其拆分为3、4或其他元素,该怎么办?嘿@ArunPJohny,请检查更新的答案,花了一些时间,但我已经完成了!耶!,不完美但很接近:)@ArunPJohny感谢您指出,添加
ind=ind>0?ind:str.lastIndexOf(“”)将解决问题problem@Tushar如果我需要将其拆分为3、4或其他元素,该怎么办?嘿@ArunPJohny,请检查更新的答案,花了一些时间,但我已经完成了!耶!,不完美但接近:)