如何在使用lodash _.words时不分隔破折号/连字符
How to not separate on dash/hyphen when using lodash _.words?
我使用lodash将输入到字符串中的用户名与某种任意分隔符分开。我想使用_.words()将字符串分割成单词,除了连字符,因为有些用户名包含连字符。
的例子:
_.words(['user1,user2,user3-adm'], RegExp)
我想让它屈服:
['user1', 'user2', 'user3-adm']
not this (_.words(array) without any pattern):
['user1', 'user2', 'user3', 'adm']
什么是正确的字符串/RegExp来实现这一点?
初始情况可以这样解决:
_.words(['user1,user2,user3-adm'], /[^,]+/g);
结果:["user1", "user2", "user3-adm"]
[编辑]
如果你想添加更多分隔符,像这样添加:
_.words(['user1,user2,user3-adm.user4;user5 user7'], /[^,.'s;]+/g);
结果:["user1", "user2", "user3-adm", "user4", "user5", "user7"]
最后一段代码将以:
分隔逗号(,
),点(.
),空格('s
),分号(;
)
也可以使用:
_.words(['user1,user2,user3-adm.user4;user5 user7*user8'], /[-'w]+/g)
结果: ["user1", "user2", "user3-adm", "user4", "user5", "user7", "user8"]
在这种情况下,您可以添加您不希望的作为分隔符。在这里,它将被每个字符分隔,而不是'w
(与[_a-zA-Z0-9]
相同)或-
(破折号)
words
接受一个正则表达式来匹配单词,而不分割它们,因此,只需使用一个匹配除逗号以外的所有内容的正则表达式,即:
_.words(['user1,user2,user3-adm'], /[^,]+/g);
或者,您可以使用split
。
result = wordlist.split(/,/);
https://lodash.com/docs单词
相关文章:
- javascript函数内部的代码用逗号而不是分号分隔
- 可以't用回车符分隔那个字符串
- 计算输入中有多少逗号分隔的字符串
- 选择带有空格分隔单词的元素
- 尝试使用Javascript正则表达式来获取“&"分隔文本,无论它是否's是最后一个值
- 使用JavaScript分析分隔文本行
- 比较逗号分隔的字符串
- 带破折号的Ractive.js变量
- 用分隔符分隔具有多个整数值的字符串的Javascript"重试错误的值
- Javascript-Regex,用于逗号分隔的字母数字
- 使用jquery过滤逗号分隔的span文本
- 在javascript中用逗号分隔的字符串分割值
- 如何在java脚本中用单引号写逗号分隔的值
- 如何将逗号分隔的列表转换为<ul>列表
- 如何获得用破折号分隔的2个字符串
- 从所有单词中替换,即使用破折号分隔,第一个字符用大写[更简单的方法]
- 如何在Javascript中去除破折号分隔字符串的最后一个元素
- 如何更改用破折号分隔的两个单词的属性
- 用破折号分隔并以年份开头时出现Javascript Date.parse错误
- 如何在使用lodash _.words时不分隔破折号/连字符