拆分字符串返回完整字符串

时间:2017-05-19 15:42:41

标签: javascript html

我想创建一个小脚本,用于确定段落中有多少单词,然后根据特定长度划分段落。我的方法是使用split()拆分段落,找出数组中有多少元素,然后将一些元素输出到一个段落中,其余元素输出到另一个段落中。

var para = document.getElementById('aboutParagraph').innerHTML;
var paraElements = para.split();
var paraLength = paraElements.length;

if(paraLength >= 500){

}
console.log(paraElements);

当我使用此代码时,paraElements将在数组中返回,其中第一个元素是整个字符串。

例如,如果段落是“这是一个段落”,则表示段落符号被返回为:["this is a paragraph"],长度为1.不应该是["this", "is", "a", "paragraph"]吗?

4 个答案:

答案 0 :(得分:1)

split() 方法将字符串拆分为您指定的分隔符(可以是文字字符串,对字符串或正则表达式的引用),然后返回所有的数组部分。如果只需要一个部件,则必须将结果数组传递给索引。

您没有提供拆分的分隔符,因此您将获得整个字符串。

var s = "This is my test string";

var result = s.split(/\s+/); // Split everywhere there is one or more spaces

console.log(result);  // The entire resulting array

console.log("There are " + result.length + " words in the string.");

console.log("The first word is: " + result[0]); // Just the first word

答案 1 :(得分:1)

var str = "this is a paragraph";

var ans = str.split(' ');
console.log(ans);

您需要使用此格式的split('')。使用'',注意那里的空间。您没有传递任何要拆分的参数。

答案 2 :(得分:0)

您缺少空格的拆分分隔符。试试这个:

    var para = document.getElementById('aboutParagraph').innerHTML;
var paraElements = para.split(' ');
var paraLength = paraElements.length;

if(paraLength >= 500){

}
console.log(paraElements);

答案 3 :(得分:0)

split()将返回一个数组,如果你没有传递分隔符作为参数,它会将整个字符串封装到数组的一个元素中。

您可以在空格上破解您的文字,但您可能还需要考虑标签和换行符。因此,您可以使用一些正则空间/\s+/,它将匹配任何空格字符。

使用+,以便将所有连续的空格字符视为一个分隔符。否则,包含两个空格的字符串(如foo bar)将被视为三个字,其中一个字符为空字符串["foo", "", "bar"](正如预期的那样使其成为["foo", "bar"]。)

var para = document.getElementById('aboutParagraph').innerHTML;
var paraElements = para.split(/\s+/); // <-- need to pass in delimiter to split on
var paraLength = paraElements.length;

if (paraLength >= 500) {}

console.log(paraLength, paraElements);
<p id="aboutParagraph">I want to create a small script which determines how many words are in a paragraph and then divides the paragraph depending on a certain length. My approach was to split the paragraph using split(), find out how many elements are in the array and then output some of the elements into one paragraph and the rest into another.</p>