如何使用Javascript从文本区域读取列表?

如何使用Javascript从文本区域读取列表?,javascript,string,Javascript,String,我试图用Javascript从文本框中读取由空格分隔的单词列表。这最终会出现在一个网站上 谢谢。这应该差不多可以了: 这里有一些文本 var元素=document.getElementById('foo'); var wordlist=element.value.split(“”); //wordlist现在包含3个值:“some”、“text”和“here” 这几乎可以做到: 这里有一些文本 var元素=document.getElementById('foo'); var wordlist=

我试图用Javascript从文本框中读取由空格分隔的单词列表。这最终会出现在一个网站上

谢谢。

这应该差不多可以了:

这里有一些文本
var元素=document.getElementById('foo');
var wordlist=element.value.split(“”);
//wordlist现在包含3个值:“some”、“text”和“here”
这几乎可以做到:

这里有一些文本
var元素=document.getElementById('foo');
var wordlist=element.value.split(“”);
//wordlist现在包含3个值:“some”、“text”和“here”

一种更准确的方法是首先使用正则表达式去除多余的空格,而不是使用@Aron的方法,否则,如果你有像“abcde”这样的东西,你会得到一个包含大量空字符串元素的数组,我相信你不会想要的

因此,您应该使用:

<textarea id="foo">
    this is some   very     bad
    formatted text         a      
</textarea>

<script>
   var str = document.getElementById('foo').value;
   str = str.replace(/\s+/g, ' ').replace(/^\s+|\s$/g);
   var words = str.split(' ');
   // words will have exactly 7 items (the 7 words in the textarea)
</script>

这是非常糟糕的
格式化文本a
var str=document.getElementById('foo').value;
str=str.replace(/\s+/g',).replace(/^\s+\s$/g);
变量词=str.split(“”);
//单词将有7个项目(文本区域中的7个单词)

函数的第一个.replace()函数将所有连续空格替换为1个空格,第二个函数将从字符串的开头和结尾修剪空格,使其非常适合于单词解析:)

更准确的方法是首先使用正则表达式去除多余的空格,而不是使用@Aron的方法,否则,如果你有像“abcde”这样的东西,你会得到一个包含很多空字符串元素的数组,我相信你不会想要的

因此,您应该使用:

<textarea id="foo">
    this is some   very     bad
    formatted text         a      
</textarea>

<script>
   var str = document.getElementById('foo').value;
   str = str.replace(/\s+/g, ' ').replace(/^\s+|\s$/g);
   var words = str.split(' ');
   // words will have exactly 7 items (the 7 words in the textarea)
</script>

这是非常糟糕的
格式化文本a
var str=document.getElementById('foo').value;
str=str.replace(/\s+/g',).replace(/^\s+\s$/g);
变量词=str.split(“”);
//单词将有7个项目(文本区域中的7个单词)

函数的第一个.replace()函数将所有连续空格替换为1个空格,第二个函数将从字符串的开始和结束处修剪空格,使其成为单词分析的理想工具:)

您也可以尝试匹配非空格字符序列,而不是按空格拆分

var words = document.getElementById('foo').value.match(/\S+/g);
Spliting方法的问题在于,当存在前导或尾随空格时,将为它们获取一个空元素。例如,
“hello world”
将为您提供
[“”、“hello”、“world”、“”]

您可以去掉文本前后的空白,但还有另一个问题:当字符串为空时。例如,拆分
“”
将为您提供
[“”]


与其找到我们不想要的并将其拆分,我认为最好是查找我们想要的。

与其通过空格拆分,还可以尝试匹配非空格字符序列

var words = document.getElementById('foo').value.match(/\S+/g);
Spliting方法的问题在于,当存在前导或尾随空格时,将为它们获取一个空元素。例如,
“hello world”
将为您提供
[“”、“hello”、“world”、“”]

您可以去掉文本前后的空白,但还有另一个问题:当字符串为空时。例如,拆分
“”
将为您提供
[“”]

我认为,与其找到我们不想要的东西并将其分割,不如寻找我们想要的东西