这个JS做什么?

时间:2011-04-08 21:56:23

标签: javascript

var passwordArray = pwd.replace(/\s+/g, '').split(/\s*/);

我发现上面的代码行是一个记录很差的JavaScript文件,我不确切知道它的作用。我认为它将字符串拆分为一个字符数组,类似于PHP的str_split。我是否正确,如果是的话,有更好的方法吗?

3 个答案:

答案 0 :(得分:2)

它替换密码中的任何空格,然后将密码拆分为一个字符数组。

将字符串转换为字符数组有点多余,因为您已经可以通过括号(不是在较旧的IE :()中或通过字符串方法“charAt”访问字符串的字符:< / p>

var a = "abcdefg";
alert(a[3]);//"d"
alert(a.charAt(1));//"b"  

答案 1 :(得分:1)

它与:pwd.split(/\s*/)相同。

pwd.replace(/\s+/g, '').split(/\s*/)删除所有空格(制表符,空格,lfcr等),并将余数(从replace操作返回的字符串)拆分为一个字符数组。 split(/\s*/)部分很奇怪且过时,因为\s中不应留下任何空格(pwd)。

因此pwd.split(/\s*/)就足够了。所以:

'hello cruel\nworld\t how are you?'.split(/\s*/)
// prints in alert: h,e,l,l,o,c,r,u,e,l,w,o,r,l,d,h,o,w,a,r,e,y,o,u,?

'hello cruel\nworld\t how are you?'.replace(/\s+/g, '').split(/\s*/)

答案 2 :(得分:0)

replace部分正在从密码中删除所有空白区域。 \\s+原子匹配非零长度的白色spcace。 'g'部分匹配空白的所有实例,并且它们都被空字符串替换。