如果找到一个或多个空格,则拆分

时间:2013-09-23 20:53:30

标签: javascript regex syntax

我对我在devdocs.io上读到的内容感到困惑。

var names = "Harry Trump ;Fred Barney; Helen Rigby ; Bill Abel ;Chris Hand ";

print(names);

var re = /\s*;\s*/;
var nameList = names.split(re);

   print(nameList);

我很难理解这一点。我知道如何分割一个字符或空格,我知道如果找到多个空格就分开。我无法弄清楚" var"语法意味着抱歉,这是一个初学者问题,但我无法在stackoverflow或google上找到任何资源来为我澄清这一点。

4 个答案:

答案 0 :(得分:1)

你可能正在努力学习正则表达式。

var re = /\s*;\s*/;

在这些斜杠/之间构造正则表达式,所以基本上你需要弄清\s*;\s*的含义。

\s =任何空白字符。

* =重复零次或多次序列中的前一个字符。

; =只是';'字符。

所以整体是:任何空白的零次或多次序列,紧接着是;,然后是任何白色的零次或多次序列 - 空间。

如果你的字符串是Harry Trump ;Fred Barney; Helen Rigby ; Bill Abel ;Chris Hand 然后,在拆分后,它应该是Harry Trump Fred Barney Helen Rigby Bill Abel Chris Hand

答案 1 :(得分:0)

这不是特殊的语法。您只需定义一个名为“re”的变量。 Javascript中的所有变量都使用'var'声明,而不是'int'或类型声明。 Javascript不知道显式变量类型。

re可能是“正则表达式”的简写,但你可以使用任何名称,它仍然有用。

此外,如果变量以/开头和结尾,则它是正则表达式。另一种定义正则表达式的方法是

var re = new RegExp("\s*;\s*");

答案 2 :(得分:0)

这是www.regex101.com所说的:

\s 0 to infinite times [greedy] Whitespace [\t \r\n\f\v]
; Literal ;
\s 0 to infinite times [greedy] Whitespace [\t \r\n\f\v]

所以你要分开[optional]whitespace followed by a semi-colon followed by [optiona]whitepsace.

答案 3 :(得分:0)

这是一个正则表达式。为了打破它,这就是它正在做的事情:

  • 两个外部斜杠 - / - 封装表达式。它只是新RegExp的简写(“
  • \s表示“任何空白。”
  • \s*表示“0次或更多次。”
  • ;只是一个分号;)

因此整个表达式匹配任何具有零个或多个空格字符后跟分号的字符串,然后是0个或更多个空白字符。