我对这是如何运作感到迷茫:
x=x.replace(/^\s+|\s+$/g,"");
什么是管道(|)?
答案 0 :(得分:5)
管道意味着"或"。
所以你的正则表达式匹配
^ # the start of the string
/s+ # followed by whitespace (one or more characters)
| # or
/s+ # whitespace
$ # followed by the end of the string
/g
(全局)修饰符将正则表达式应用于字符串中的所有匹配项,而不仅仅是第一个匹配项。
答案 1 :(得分:3)
这意味着or
。左边的部分匹配任何前导空格(^
),右边的部分匹配任何尾随空格($
)。 g
修饰符允许多次应用此匹配,如果您期望尾随和前导空间,这将非常有用。
基本上这个正则表达式修剪了空格。
编写此正则表达式的另一种方法是使用new RegExp
构造:
x = x.replace(new RegExp("^\s+|\s+$", "g"), "");
如果发现这种符号更具可读性,因为您不需要分隔符(/
)并且您的修饰符已分开。
答案 2 :(得分:2)
这是一种交替构造。
正则表达式说“字符串的开头后跟一个或多个空格字符,或者,一个或多个空格字符后跟字符串结尾”。
无论如何,我认为这是意图。我现在不确定我是否读过JaredPar的答案。
如果我写这篇文章,我会用parens来表达它。
x = x.replace(/(^ \ s + | \ s + $)/ g,“”);
答案 3 :(得分:1)
正则表达式中的“管道”代表“ OR ”,因此您的正则表达式将匹配“管道”之前的模式“管道”之后的模式
答案 4 :(得分:1)
管道字符“|”代表“或”。
答案 5 :(得分:1)
管道代表OR
/g
代表Global
\s
代表Space