js如何判断几个字符串是否有重复

JavaScript013

js如何判断几个字符串是否有重复,第1张

字符串的indexof()函数就可以判断

如:

var

str

=

"abcde"

判断里面是否有'c'

那么需要做如下判断:

index

=

str.indexof('c')

如果存在,index

的值就是c在字符串中的第一次出现的位置

如果不存在,那么index就等于-1

简单实现如下:

按照代码执行就行不用调用多少方法

方法一:

<script type="text/javascript">

var str = 'caibaojian.com',obj=[]

for(var i = 0i<str.lengthi++){

var key = str[i]

if(!obj[key]){

obj[key] = 1

}else{

obj[key] ++

}

}

var max = -1

var max_key = ''

var key

for(key in obj){

if(max<obj[key]){

max=obj[key]

max_key = key

}

}

console.log(max_key+"为最多出现字符,出现的次数为"+max)

</script>

方法二:

var str ="caibaojian.com"

var arr = str.split("")

var obj = {}

var objArr = []

for(var i=0,jj=arr[i]i++){

if(!obj[j])obj[j]=0

objArr[++obj[j]]=j

}

document.write(objArr[objArr.length-1]+"=="+(objArr.length-1))

方法三:

var str ="caibaojian.com"

var maxLength = 0//命名一个变量放置字母出现的最高次数并初始化为0

var result = ''//命名一个变量放置结果输入

while( str != '' ){ //循环迭代开始,并判断字符串是否为空

oldStr = str//将原始的字符串变量赋值给新变量

getStr = str.substr(0,1)//用字符串的substr的方法得到第一个字符(首字母)

eval("str = str.replace(/"+getStr+"/g,'')")//详细如补充,也可以写成 str = str.replace(new RegExp(getStr,'g'),"")

if( oldStr.length-str.length >maxLength ) { //判断原始的字符串的长度减去替代后字符串长度是否大于之前出现的最大的字符串长度

maxLength = oldStr.length-str.length//两字符串长度相减得到最大的字符串长度

result = getStr + "=" + maxLength //返回最大的字符串结果(字母、出现次数)

}

}

document.write(result) //弹出结果

很简单啊

var input = $('input').on('keyup' , function(){

  var strs = input.val().split(',')//按照`,`分割

  var tmpMap = {}//用这个map来做唯一字符串验证

                  //通过map的属性`key`只能是唯一来验证的

  $.each(strs , function(){//遍历所有的字符串

      //这里`this`表示当前正在验证的字符串

      if(!tmpMap[this]){//如果map里还没有出现这个key,表示这个字符串目前是唯一的

        tmpMap[this]=true

      }else{//否则,已经出现重复的字符串

        alert('不许出现重复的字符串:' + this)

      }

  })

}) <input type="text" />