在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("不能含有空格");
}
很奇怪的。呵呵...... 因为indexOf 的结果是从0开始的, 而 > 0 就是说排除了第一个 !
<script language="JavaScript">
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;
}
</script>
原文:网易blog