Javascript拆分结果简化

Javascript split result simplify

本文关键字:结果 拆分 Javascript      更新时间:2023-09-26

有没有办法使代码更加简化?

<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(' ')

这样做的目的是,当用户输入一个标签,并在其后面设置空格时,拆分会检测到两个值,我希望避免将该空格算作另一个标签,因为这就像是作弊。

首先修剪,并在任意数量的空白字符上拆分:

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, '');
    }
}

您应该将代码更改为这样,以避免对同一个dom元素进行多次调用(您将同一个东西拆分两次)

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

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

像这样的东西应该可以做到:

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.');
}

是的:

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

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