Javascript中用于分隔单词的正则表达式
我需要将文本区域中输入的文本转换为如下格式: 单词1 |单词2 |单词3 |单词4 |单词5Javascript中用于分隔单词的正则表达式,javascript,regex,Javascript,Regex,我需要将文本区域中输入的文本转换为如下格式: 单词1 |单词2 |单词3 |单词4 |单词5 如何执行此操作?假设用户将文本输入文本区域,如下所示: word1|word2|word3|word4|word5 然后将其存储在变量字符串userText中,然后使用: var textArray = userText.split('|'); 这应该去掉制表符、空格等(任何不需要的空白),并用“|”字符替换它们。第二个替换将去掉非字母数字和“|”字符。然后,您可以拆分“|”上的文本,以获得一个单词
如何执行此操作?假设用户将文本输入文本区域,如下所示:
word1|word2|word3|word4|word5
然后将其存储在变量字符串userText
中,然后使用:
var textArray = userText.split('|');
这应该去掉制表符、空格等(任何不需要的空白),并用“|”字符替换它们。第二个替换将去掉非字母数字和“|”字符。然后,您可以拆分“|”上的文本,以获得一个单词数组
var textIn= document.getElementById("myTextArea");
textIn.value = (textIn.value).replace(/\s+/g,'|').replace(/[^\w|]/g, '');
var textArr = textIn.value.split('|');
此外,如果您不想实际替换文本区域中的文本,可以将其存储到var
中的第二行代码中。试试这个
var textAreaWords=textAreaNode.value.replace(/[^\w ]+/g,'').replace(/\s+/g,'|').split('|');
这将仅保留A-Za-z0-9_uuu字符作为第一次更换的一部分。第二次替换将所有空格/换行符/制表符转换为管道字符。它还将多个连续空间转换为一个管道。这应该可以实现以下功能:
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('|');
输入的文本将是什么样子?对于拆分,不需要正则表达式。Justvar words=yourstring.split(“|”)
在文本区域中会有空格、非字母数字字符、制表符、换行符等。我需要删除所有这些内容,并得到以下信息:“word1 | word2 | word3 | word4 | word5”,因此,例如,输入的文本“Hello,我的名字是Anders!”应该转换为“Hello |我的名字|是| Anders”?或者你真的在问如何从任意字符串中获取一个单词数组,去掉其他非单词字符(更不用说|-符号了)?都是真的,我实际上需要一个单词数组。但是我知道如何使用split()实现,所以word1 | word2也很好。我要求代码将用户输入的文本转换为:“word1 | word2 | word3 | word4 | word5”我需要将任何非字母数字字符、空格、制表符等更改为“|”。。。。但标点符号(点、逗号、感叹号等)呢。它们也应该被移除。那么在“|”字符上拆分呢?源文本中没有此类字符。谢谢,这很有用,但我还需要删除点、逗号、问号等。这将只匹配第一次出现的[^\w]
和\s+
,并且不适用于换行符。(没有插入|
)我是从内存中编写代码的,未经测试。我已经更新了上面的代码,添加了g属性,使其成为一个全局搜索。在这些改变之后,它在Firefox中处理带有多个新行字符和多次出现的“特殊字符”的字符串。我仍然想和这个答案做爱!