首先我设置一个变量,并将其设置为空:
var str = "";
然后我通过“&”来分割它:
var strs = str.split('&');
最后我展示一下
strs
的长度:
alert( strs.length);
警报“1”。
但我没有为“str”变量分配任何内容。为什么它还有长度,不应该是零吗?
来自MDC文档中心:
注意:当字符串为空时,
返回一个包含一个空字符串的数组,而不是一个空数组。split
在此处阅读完整文档:https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/split
换句话说,这是设计使然,而不是错误:)
分割window.location.pathname
请注意,在 window.location.pathname 拆分时,它也会返回 +1 的长度。
假设本例中的路径名是:
/index.html
。
var str = window.location.pathname.split('/');
它会被设计分成
["" , "index.html"]
,正如之前多次提到的。
在这种情况下可以做的是,去掉前导和尾随
/
,如下所示:
var str = window.location.pathname.replace(/^\/|\/$/g, '').split('/');
最终得到“正确”的长度。
因为你得到一个包含空字符串的数组:
[ "" ]
那个空字符串是一个元素。所以
length
是 1。
消除任何空字符串。
str.split('{SEPERATOR}').filter(r => r !== 'null')
描述
split方法返回新的 数组。
发现后,将分离器从 字符串和子字符串是 以数组形式返回。如果分隔符是 省略,数组包含一个 整个元素组成 字符串。
注意:当字符串为空时,split返回一个包含1的数组 空字符串,而不是空字符串 数组。
https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/split
我厌倦了总是检查 a[0] == '' 所以:
String.prototype.splitPlus = function(sep) {
var a = this.split(sep)
if (a[0] == '') return [];
return a;
};
元素 1 可能为 null 时的更正版本:
String.prototype.splitPlus = function(sep) {
var a = this.split(sep)
if (a[0] == '' && a.length == 1) return [];
return a;
};
JavaScript
split
创建一个数组。也就是说,您的变量 strs = [0]=>""
其长度为 1。
发明爆炸/内爆(如PHP)
Object.defineProperty(String.prototype,"explode",{
value: function (sep = '') {
return this.length ? this.split(sep) : [];
}
});
试试这个
javascript 通过 split 函数给出两个数组,然后
var Val = "[email protected]";
var mail = Val.split('@');
if(mail[0] && mail[1]) { alert('valid'); }
else { alert('Enter valid email id'); valid=0; }
如果两个数组的长度都大于 0,则条件将为 true