Javascript拆分结果简化

时间:2012-03-02 20:47:52

标签: javascript split

有没有办法让这段代码更简化?

<input type="text" id="tags" />

var splittext = document.getElementById('tags').value.split(' ');
if (document.getElementById('tags').value.split(' ').length < 2 || splittext[1] == '') {
   alert("Two tags required.");
}

还有另一种方法吗

 splittext[1] == ''

就像

document.getElementById('tags').value.split(' ').something[1] 

避免使用

var splittext = document.getElementById('tags').value.split(' ')

这样做的目的是当用户输入一个标记并在之后一个空格时,拆分检测到2个值,我希望避免计算空间作为另一个标签,因为那就像,嗯,作弊。

4 个答案:

答案 0 :(得分:1)

首先修剪,然后拆分任意数量的空格字符:

if (document.getElementById('tags').value.trim( ).split(/\s+/).length < 2) {
    alert("Two tags required.");
}

如果你想支持IE的某些版本,你将需要创建String.trim函数...但它是一个有用的功能。将它放在实用程序js文件中,或者只放在js的顶部:

if(typeof String.prototype.trim !== 'function') {
    String.prototype.trim = function() {
        return this.replace(/^\s+|\s+$/g, '');
    }
}

答案 1 :(得分:0)

是的:

var g= document.getElementById('tags').value.split(/[ ]+/)

if (g.length==2)  // ok.....

http://jsbin.com/ovibef/edit#javascript,html

答案 2 :(得分:0)

您应该将代码更改为此代码,以避免多次调用同一个dom元素(您将同一个东西分成两次)

var splittext = document.getElementById('tags').value.split(' ');
if (splittext.length < 2 || splittext[1] == '') {
   alert("Two tags required.");
}

这是使用变量的全部要点,以避免多次调用相同的函数(具有相同的结果)。

答案 3 :(得分:0)

这样的事情可以解决问题:

var elem=document.getElementById('tags').value;
if(elem.indexOf(' ')>-1 && elem.split(' ').length>=2) {
    alert('Worked!');
} else if(!elem || elem.indexOf(' ')<0) {
    alert('Two tags required.');
}