在js里,有indexOf 这样的方法,却没有像java一样的startsWith 或者 endsWith 这样的方法。
研究了半天,在js里,通通可以用 indexOf()!=-1 来代替。要记得,这个indexOf()!=-1 和 indexOf()>0 得到的结果是不同的。
比如下面的例子:(功能:希望输入的值不包含空格)
function checkSize(str){ if(str.indexOf(' ')!=-1){ alert("不能含有空格"); }
这个方法可以检查到 str 的开头,中间,结尾是不是空格
可是如果选择了 下面这个方法,却只能检测到 str 中间 和 结尾的空格,检测不到str开头的空格。
function checkSize(str){ if(str.indexOf(' ')>0){ alert("不能含有空格"); }
很奇怪的。呵呵。。。。
对js中startWith和endWith的扩展
function closeUl(code) { alert(code); var list = document.getElementsByTagName("li"); for ( var i = 0; i < list.length; i++) { var curLi = list[i].id; if (curLi.indexOf(code) != -1 && curLi.length != code.length && curLi.startWith(code)) { alert(curLi); if (document.getElementById(curLi).style.display == "none") { if (curLi.length == code.length + 5) { document.getElementById(curLi).style.display = "block"; } } else { document.getElementById(curLi).style.display = "none"; } } } } String.prototype.endWith = function(str) { if (str == null || str == "" || this.length == 0 || str.length > this.length) return false; if (this.substring(this.length - str.length) == str) return true; else return false; return true; } String.prototype.startWith = function(str) { if (str == null || str == "" || this.length == 0 || str.length > this.length) return false; if (this.substr(0, str.length) == str) return true; else return false; return true; }