Javascript中的正则表达式用于分隔单词

时间:2010-10-24 20:20:38

标签: javascript regex

我需要将在textarea中输入的文本转换为如下形式:

  

WORD1 | WORD2 | WORD3 | word4 |的word5

我该怎么做?

4 个答案:

答案 0 :(得分:3)

假设用户将文本输入textarea,如下所示:

word1|word2|word3|word4|word5

并将其存储在变量字符串userText中,然后使用:

var textArray = userText.split('|');

答案 1 :(得分:2)

这应该可以解决问题:

input = textarea.value.
    replace(/\b/g, '|'). // Replace word boundaries with '|'
    replace(/\s|[^a-zA-Z0-9\|]/g, ''). // Remove all non-alphanumeric chars
    replace(/\|{2,}/g, '|'). // Replace repetitions of '|' (like '||') with '|'
    replace(/^\||\|$/g, ''); // Remove extra '|' chars
array = input.split('|');

答案 2 :(得分:1)

这应该摆脱标签,空格等(任何不需要的空格),并用'|'替换它们字符。并且,第二个替换将摆脱非字母数字和'|'字符。然后,您可以拆分'|'上的文字给你一系列的话。

var textIn= document.getElementById("myTextArea");
textIn.value = (textIn.value).replace(/\s+/g,'|').replace(/[^\w|]/g, '');
var textArr = textIn.value.split('|');

此外,如果您不想实际替换textarea中的文字,则可以将其存储到var而不是第二行代码。

答案 3 :(得分:1)

试试这个......

var textAreaWords=textAreaNode.value.replace(/[^\w ]+/g,'').replace(/\s+/g,'|').split('|');

这只会将A-Za-z0-9_字符作为第一个替换的一部分。第二个替换将所有空格/换行符/制表符转换为管道符。它还会将多个连续的空格转换为1个管道。