Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript中用于分隔单词的正则表达式_Javascript_Regex - Fatal编程技术网

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

Javascript中用于分隔单词的正则表达式,javascript,regex,Javascript,Regex,我需要将文本区域中输入的文本转换为如下格式: 单词1 |单词2 |单词3 |单词4 |单词5 如何执行此操作?假设用户将文本输入文本区域,如下所示: word1|word2|word3|word4|word5 然后将其存储在变量字符串userText中,然后使用: var textArray = userText.split('|'); 这应该去掉制表符、空格等(任何不需要的空白),并用“|”字符替换它们。第二个替换将去掉非字母数字和“|”字符。然后,您可以拆分“|”上的文本,以获得一个单词

我需要将文本区域中输入的文本转换为如下格式:

单词1 |单词2 |单词3 |单词4 |单词5


如何执行此操作?

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

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('|');

输入的文本将是什么样子?对于拆分,不需要正则表达式。Just
var words=yourstring.split(“|”)
在文本区域中会有空格、非字母数字字符、制表符、换行符等。我需要删除所有这些内容,并得到以下信息:“word1 | word2 | word3 | word4 | word5”,因此,例如,输入的文本“Hello,我的名字是Anders!”应该转换为“Hello |我的名字|是| Anders”?或者你真的在问如何从任意字符串中获取一个单词数组,去掉其他非单词字符(更不用说|-符号了)?都是真的,我实际上需要一个单词数组。但是我知道如何使用split()实现,所以word1 | word2也很好。我要求代码将用户输入的文本转换为:“word1 | word2 | word3 | word4 | word5”我需要将任何非字母数字字符、空格、制表符等更改为“|”。。。。但标点符号(点、逗号、感叹号等)呢。它们也应该被移除。那么在“|”字符上拆分呢?源文本中没有此类字符。谢谢,这很有用,但我还需要删除点、逗号、问号等。这将只匹配第一次出现的
[^\w]
\s+
,并且不适用于换行符。(没有插入
|
)我是从内存中编写代码的,未经测试。我已经更新了上面的代码,添加了g属性,使其成为一个全局搜索。在这些改变之后,它在Firefox中处理带有多个新行字符和多次出现的“特殊字符”的字符串。我仍然想和这个答案做爱!