作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
似乎是一个有点愚蠢的问题,但是查看所有 MDN 文档我无法说出为什么会发生这种情况。
我的匹配不仅返回句子中的单词,还返回空字符串,即出现的每个匹配项之一。
var input = "This is a something";
input.match(/[a-z0-9]*/gi); # ["This", "", "is", "", "a", "", "something", ""]
即使是一个单词也会发生这种情况。
var input = "This";
input.match(/[a-z0-9]*/gi); # ["This", ""]
我也尝试过添加单词边界(\b),但它根本没有帮助。有人能告诉我这是怎么回事吗?我只想匹配句子中的所有单词。
预先感谢您的帮助。
最佳答案
您可以使用 +,但对于您的用例(匹配句子中的所有单词),您最好使用 split。
var input = "This is a something";
input.split(' '); // ["This", "is", "a", "something"]
在这种情况下,看起来 split 也是您正在寻找的:
input = "words with a-hyphen";
input.split(' '); // ["words", "with", "a-hyphen"]
input.match(/[a-z0-9]+/gi); //["words", "with", "a", "hyphen"]
如果需要,您可以稍后使用匹配项
关于JavaScript 匹配返回匹配项加上空字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25232676/
我是一名优秀的程序员,十分优秀!