每个数组项目我有这样的正则表达式在一个字符串任何#
转换成散列标签阵列过滤器,正则表达式
myArr= myStr.match(/#\S+/g);
我也有这个从比alpah数字减去下划线等字符串任何过滤掉。
myStr= myStr.replace(/[^a-zA-Z0-9_]/g, "");
但现在我想结合这2,以确保每一个数组中的项目中只包含字母数字值,包括下划线,并在开始时的#
。
任何人都可以帮忙,谢谢。
每个数组项目我有这样的正则表达式在一个字符串任何#
转换成散列标签阵列过滤器,正则表达式
myArr= myStr.match(/#\S+/g);
我也有这个从比alpah数字减去下划线等字符串任何过滤掉。
myStr= myStr.replace(/[^a-zA-Z0-9_]/g, "");
但现在我想结合这2,以确保每一个数组中的项目中只包含字母数字值,包括下划线,并在开始时的#
。
任何人都可以帮忙,谢谢。
为什么这么复杂?
myArr = myStr.match(/#[a-z0-9_]+/gi);
编辑:我误解了你的意图。这里有一个稍微简单一点,但更高效的解决方案:
myArr = myStr.replace(/#\S+/g,function(m) {
return "#"+m.replace(/[^a-z0-9_]+/gi,"");
}).match(/#\S+/g);
gi需要g。 –
@NoahR呃,没有。这是故意的。 –
谢谢,我摘下了'我'。当我输入'#hello_wor-ld'期待'#hello_world'时,我得到'#h' –
因为它是两种不同的操作。 –