繁体   English   中英

Javascript正则表达式选择每个非字母数字字符和空格?

[英]Javascript Regex to select every non-alphanumeric character AND whitespace?

我是JS新手,尝试使用-

/[0-9a-z]+$/gi
/[^0-9a-z]+$/gi

都不起作用。 谁能告诉我我要去哪里错了?

更换

var sentence_split = arr.split(/[0-9a-z]+$/gi);

var sentence_split = arr.split(/[^0-9a-z]+/gi);

...如果您喜欢这种方式。

说明:原始正则表达式(用$ )锚定在字符串的末尾,并按单词分隔-而不是用符号分隔它们。

尽管如此,还有多种方法可以完成您要做的事情:我可能会选择:

var words = sentence.match(/(\w+)/g);

...捕获包含单词的符号序列,而不是用将它们分开的方式将短语分开。 这是一个小提琴

更新:还有最后一件事。 我感到有点...对于仅仅为了max地获得max浪费sort感到不安。 我不知道您是否同意这些想法,仍然是我将如何更新搜索代码的方法:

var longest;
words.forEach(function(e) {
  if (! longest || longest.length < e.length) {
    longest = e;
  }
});

这是forEach ,因为我有点懒惰,并且可以想象不使用IE8-是一种奢侈。 尽管如此,将其重写为常规for...数组遍历例程还是很容易的。

更新小提琴

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM