我需要将在textarea中输入的文本转换为如下形式:
WORD1 | WORD2 | WORD3 | word4 |的word5
我该怎么做?
答案 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个管道。