Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript .split(/\s+;/)和.split(";)之间的区别?_Javascript_Regex - Fatal编程技术网

Javascript .split(/\s+;/)和.split(";)之间的区别?

Javascript .split(/\s+;/)和.split(";)之间的区别?,javascript,regex,Javascript,Regex,)首先,对不起,我的孩子 我正在看下一个js代码片段: var classes = element.className.split(/\s+/); 该代码将把和元素的完整类名拆分为包含每个类的数组。。。但是,使用.split(/\s+/)和使用.split(“”)有什么区别呢?我看到了同样的结果 我用Chrome中的下一个简单代码对此进行了测试: <!DOCTYPE html> <html> <body> <div id="cono&

)首先,对不起,我的孩子 我正在看下一个js代码片段:

var classes = element.className.split(/\s+/);
该代码将把和元素的完整类名拆分为包含每个类的数组。。。但是,使用
.split(/\s+/)
和使用
.split(“”
)有什么区别呢?我看到了同样的结果

我用Chrome中的下一个简单代码对此进行了测试:

<!DOCTYPE html>
<html>
<body>
    <div id="cono" class="clase1 clase2 clase3-xD">
    </div>
    <script>
        var d = document.getElementById("cono");
        console.log(d.className);
        var classes = d.className.split(" ");
        for (i in classes) {
            console.log(classes[i]);
        }
    </script>
</body>
</html>

var d=document.getElementById(“cono”);
console.log(d.className);
var classes=d.className.split(“”);
(我在课堂上){
console.log(类[i]);
}
无论我使用
.split(“”)还是
.split(/\s+/)
,我都会得到相同的结果:

类别1类别2类别3 xD

类别1

类别2

类别3 xD

它们有什么相关的区别吗?

没有,
.split(/\s+/)
是不同的<代码>\s+
匹配一个或多个空格字符,包括换行符,
匹配单个水平空格字符。因此,
.split(/\s+/)
根据一个或多个空格字符分割输入,
.split(“”)
根据单个空格分割输入

例如:

> "foo   bar".split(/\s+/)
[ 'foo', 'bar' ]
> "foo   bar".split(" ")
[ 'foo', '', '', 'bar' ]

\s
捕获的空白类型多于空格

发件人:

匹配单个空白字符,包括空格、制表符、换行符、换行符。相当于
[\f\n\r\t\v​\u00a0\u1680​\u180e\u2000​\u2001\u2002​\u2003\u2004​\u2005\u2006​\u2007\u2008​\u2009\u200a​\u2028\u2029​​\u202f\u205f​\u3000]

另外,
+
表示它将在多个空格上匹配。因此
foo bar
将产生不同的结果:

js> 'foo      bar'.split(' ')
["foo", "", "", "", "", "", "bar"]
js> 'foo      bar'.split(/\s+/)
["foo", "bar"]

.split(“”)和.split(/\s+/)之间的区别是:

正则表达式

  • 逐字匹配空格字符
正则表达式
/\s+/

  • 在一次和未提交时间之间匹配单个空格字符(制表符、换行符、回车符、垂直制表符、换行符)。(贪婪的)

简称:

“”
将数组拆分为一个空格字符。
/\s/
按每种空格字符拆分数组

+
在一次和未授权时间之间进行匹配

\s
捕获的空白多于空格character@Antony太好了哦我明白了。。。因此,即使元素的类被多个空格分隔,\s+也可以正常工作。。。谢谢!:)是的,但是他也回答了这个问题。。。所以我感谢你和他ahah@Justme