我在JavaScript中寻找一个不存在的修剪函数,Googling上的一些代码建议使用:
function trimStr(str) {
return str.replace(/^\s+|\s+$/g, '');
}
我想知道如何str.replace(/^\s+|\s+$/g, '')
作品。我知道这是某种形式的正则表达,但不知道它在做什么。
答案 0 :(得分:36)
/^\s+|\s+$/g
从字符串的开头或结尾搜索空格。表达式可以分为两部分,^\s+
和\s+$
,由|
(OR)分隔。第一部分从字符串(^
)的开头开始,包含尽可能多的空白字符(\s+
)。第二部分使用美元符号($
)进行相反但反过来的结尾。
用简单的英语,正则表达式会是这样的:
尽可能从字符串的开头找到尽可能多的空白字符,或尽可能多地找到空白字符。
请注意\s
匹配空格,制表符和换行符。
最后的/g
部分启用全局搜索,允许多次替换(例如,不仅仅是开头,而是字符串的结尾)。
答案 1 :(得分:6)
^
是字符串的开头,$
是结尾。 \s
表示空白字符(在JavaScript中专门表示制表符,垂直制表符,换页符,空格,非中断空格,字节顺序标记,Unicode空格分隔符(类别Z)),换行符,回车符,行分隔符,或段落分隔符),+
表示1或更多。 |
是交替,是两种可能性之间的选择。 g
是全球旗帜。所以正则表达式意味着开头,然后是一个或多个空格,或者一个或多个空格,然后是结尾。然后,我们用空字符串替换所有匹配(因为它是全局的)。
你可能对这个blog post感兴趣,它比你可能需要更详细地分析:)各种修剪功能的优点和缺点。