我是正则表达式的新手,我试图从任何字符串中删除前导下划线'_'。
replace(/^[_]+/, "")
这样可行,但我想确定一下:这是正确的方法吗?
由于我无法在网上找到很多关于这个特殊问题的信息,我在这里问这个问题。
答案 0 :(得分:3)
这应该足够了:
replace(/^_/, '');
答案 1 :(得分:1)
然而,它将删除1-n个前导下划线。例如,_x变为x,但__x也变为x;一直到n个领先的下划线。如果您只想删除第一个前导下划线,请使用以下内容:
some_string.replace(/^_{1}/, '');
这是使用量词仅匹配1.请注意,此量词不是贪婪,+量词是一个或多个并且贪婪。您还可以将原始代码与非贪婪修饰符一起使用?如下:
some_string.replace(/^[_]+?/, '');
最后一点,在这种情况下,您不需要使用字符类运算符[...]。这不是错误或错误的形式,只是不必要。