在JavaScript中,符号/\s*是什么\s*/是什么意思?

在JavaScript中,符号/\s*是什么\s*/是什么意思?,javascript,regex,split,separator,Javascript,Regex,Split,Separator,在下面的示例中,符号/\s*\s*/是什么意思?它用作string.split()命令中的分隔符 var names = 'Harry Trump ;Fred Barney; Helen Rigby ; Bill Abel ;Chris Hand '; console.log(names); var re = /\s*;\s*/; var nameList = names.split(re); console.log(nameList); /\s*\s*/是一个正则表达式,通常用于模式

在下面的示例中,符号
/\s*\s*/
是什么意思?它用作
string.split()
命令中的分隔符

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

console.log(names);

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

var nameList = names.split(re);

console.log(nameList);

/\s*\s*/
是一个正则表达式,通常用于模式匹配。您的正则表达式(
\s*;\s*
)转换为:

  • \s
    匹配任何空白字符[
    \r\n\t\f
    ]

  • *
    表示在零次和无限次之间应用上一次匹配,尽可能多次,根据需要返回[贪婪]

  • 匹配字符

  • \s
    匹配任何空白字符[
    \r\n\t\f
    ](与项目符号1相同)

  • *
    意味着在零次和无限次之间应用上一次匹配,尽可能多次,根据需要返回[贪婪](与bullet#2相同)


这里使用正则表达式而不是
.split
的简单字符串参数的原因是原始字符串在元素之间有不同的分隔符-空格和分号的不同组合。没有一个简单的字符串可以通过传递找到所有的字符串-您可以使用
,但这会在数组的某些元素的开始和/或结束处留下空格。正则表达式确保我们匹配所有变体。

/\s*\s*/
是一个正则表达式,通常用于模式匹配。您的正则表达式(
\s*;\s*
)转换为:

  • \s
    匹配任何空白字符[
    \r\n\t\f
    ]

  • *
    表示在零次和无限次之间应用上一次匹配,尽可能多次,根据需要返回[贪婪]

  • 匹配字符

  • \s
    匹配任何空白字符[
    \r\n\t\f
    ](与项目符号1相同)

  • *
    意味着在零次和无限次之间应用上一次匹配,尽可能多次,根据需要返回[贪婪](与bullet#2相同)


这里使用正则表达式而不是
.split
的简单字符串参数的原因是原始字符串在元素之间有不同的分隔符-空格和分号的不同组合。没有一个简单的字符串可以通过传递找到所有的字符串-您可以使用
,但这会在数组的某些元素的开始和/或结束处留下空格。正则表达式确保我们匹配所有变体。

使用JavaScript的
.split(separator)
方法,可以从字符串生成数组<代码>分隔符
是一个简单的字符串或-更复杂的-正则表达式

在您的示例中,提供的正则表达式是
/\s*\s*/
。前斜杠和后斜杠只是表示它是正则表达式的分隔符<代码>\s*\s*
是您的模式,意思是:任意数量的空格字符(空格、制表符),后跟分号,后跟任意数量的空格字符。它是
“我的字符串”.split(;”)
的一个更奇特的版本,因为它修剪了分号前后的空格

例如:

var test1 = "dog;cat;fish".split(";");
// test1 is ["dog", "cat", "fish"]

var test2 = "dog;cat;fish".split(/\s*;\s*/);
// test2 is ["dog", "cat", "fish"]
只要分号周围没有白色字符,这两个分号返回的结果就完全相同。但是:

var test3 = "dog ; cat; fish".split(";");
// test3 is ["dog ", " cat", " fish"]

var test4 = "dog ; cat; fish".split(/\s*;\s*/);
// test4 is ["dog", "cat", "fish"]

这一次,test4的结果要复杂得多,因为不包含空格。

使用JavaScript的
.split(separator)
方法,可以从字符串生成数组<代码>分隔符
是一个简单的字符串或-更复杂的-正则表达式

在您的示例中,提供的正则表达式是
/\s*\s*/
。前斜杠和后斜杠只是表示它是正则表达式的分隔符<代码>\s*\s*
是您的模式,意思是:任意数量的空格字符(空格、制表符),后跟分号,后跟任意数量的空格字符。它是
“我的字符串”.split(;”)
的一个更奇特的版本,因为它修剪了分号前后的空格

例如:

var test1 = "dog;cat;fish".split(";");
// test1 is ["dog", "cat", "fish"]

var test2 = "dog;cat;fish".split(/\s*;\s*/);
// test2 is ["dog", "cat", "fish"]
只要分号周围没有白色字符,这两个分号返回的结果就完全相同。但是:

var test3 = "dog ; cat; fish".split(";");
// test3 is ["dog ", " cat", " fish"]

var test4 = "dog ; cat; fish".split(/\s*;\s*/);
// test4 is ["dog", "cat", "fish"]
这一次,test4的结果要复杂得多,因为不包含空格。

\s
中,元字符代表空白字符

空白字符可以是:

空格字符
制表符
回车符
新行字符
垂直制表符
表单馈送字符

*
代表所有。
表示冒号。

此处的表达式
\s*\s*
表示任何后跟或前面有
的空格
将使用JavaScript方法
拆分成一个数组

\s
中,元字符代表空白字符

空白字符可以是:

空格字符
制表符
回车符
新行字符
垂直制表符
表单馈送字符

*
代表所有。
表示冒号。


此处的表达式
\s*\s*
表示任何后跟或前面有
的空格
将使用JavaScript方法
拆分成一个数组

大致来说,它将输入字符串拆分为
省略此
周围的任意数量的空格



粗略地说,它将输入字符串拆分为
省略此
周围的任意数量的空格



它是一个。
\s
表示空白
*
表示0次或更多次,因此它将在任何
处拆分前面或后面有任何金额o