2012-02-24 77 views
0

所以我正在做的是采取一个字符串,并在所有的空间分裂它。我已经使用.split(" ")[0/1/2]这样做了,但是我如何取这些单独的字符串并确定长度?我这样做的原因是检查该字符串是否具有中间名首字母。给定一个像John M Smith这样的名字,我可以确定这些词是什么,但是如果有人没有输入中间名,现在姓就会放在中间的初始变量中。我该如何去做这件事,还是我把它全部弄错了?谢谢您的帮助。JavaScript单独字符串然后解密字符数

回答

1

使用保持该分隔的字符串数组的length

var separateStrings = stringVar.split(' '); 
var numOfNames = separateStrings.length; 

例如,用下面的代码:

var i = document.getElementById('names'); // assuming an input element of id="names" 

i.onkeydown = function(e){ 
    if (e.keyCode == 13){ 
     var stringVar = this.value, 
      separatedNames = stringVar.split(' '), 
      numOfNames = separatedNames.length; 

     alert(numOfNames); 
    } 

};​ 

JS Fiddle demo

+0

看起来像这样也可以。 – 2012-02-24 22:12:19

+0

嗯,是的。两个答案都表明了很多相同的东西;这仅仅是不同的演示。 =) – 2012-02-24 22:13:10

1

检查结果数组的长度,看看是否有一个中间的名字:

var result = "John Smith".split(" "); 
if(result.length == 2) { 
    //No middle name 
    //result[0] == "John" 
    //result[1] == "Smith" 
} 
else if(result.length == 3) { 
    //Has middle name 
} 
+0

看起来不错。谢谢! – 2012-02-24 22:04:04

0

使用以下命令:

var parts = "John M Smith".split(" "); 
var first = parts[0], 
    middle = (parts[2] && parts[1]) || "", 
    surname = parts[2] || parts[1]; 

你会得到正确的价值观为每个变量时,有一个中间首字母,当没有时。请注意,这里假设总是有姓氏和名字,但中间的首字母是可选的。

+0

我正在进一步检查,确保至少有2个单词分开。谢谢 – 2012-02-24 22:33:00