正则表达式somestring.trim()。split(/ \ s *,\ s * /);

时间:2014-05-15 09:01:43

标签: javascript regex

以下行的影响是什么

somestring.trim().split(/\s*,\s*/);

在javascript中??

我认为它会在之前或之后以任意数量的空格分开。

但据我所知,正则表达式就像

\\s*,\\s*

。我很困惑

2 个答案:

答案 0 :(得分:1)

  

我认为它会在之前或之后以任意数量的空格分开。

这是正确的。它甚至会在逗号前后与 no 空格匹配。

/之前和之后只是一些正则表达式解析器用作正则表达式分隔符的语法。

在Javascript中,你应该使用split('string')(撇号)来分割字符串或字符,使用split(/regexp/)(斜杠)来分割正则表达式。

双反斜杠(\\)用于转义字符串中的特殊字符,例如'\n'被解释为单个换行字符,而'\\n'被解释为反斜杠和" n" ('\n')。

在表达式上使用正则表达式分隔符/时,您不必转义特殊字符,因为解析器知道它是正则表达式。

split(/\s*,\s*/) // No escaping needed with backslash delimiters.

答案 1 :(得分:1)

I thought it would split at comas with any number of spaces before or after to the comas.

以下是示例:

'so me          ,                    s t r i n g'.trim().split(",");

我在just trim使用coma divide the string into two parts,但第一个元素contains space at the end。第二个元素包含space at Begin

结果

["so me          ", "                    s t r i n g"]

For Above expression

'so me       ,                s t r i n g'.trim().split(/\s*,\s*/);

我正在使用trim with (/\s*,\s*/);这是divide the string into two partsno space starting of second element and ending of first element。{/ p>

结果是

["so me", "s t r i n g"]