有没有办法让这段代码更简化?
<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个值,我希望避免计算空间作为另一个标签,因为那就像,嗯,作弊。
答案 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.....
答案 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.');
}