当名字长约100个字符时,找到您姓名的完全匹配?

时间:2014-03-13 12:08:19

标签: javascript arrays

text="Sfs gsk fsd exc gsk gks";
var myName="gsk";
var hits=[];
for(var i=0;i<text.length;i++)
{
  if(text[i]=="g"&&text[i+1]=="s"&&text[i+2]=="k")
  {
    for(var j=i;j<(i+myName.length);j++)
    {
      hits.push(text[j]);
    }
  }
}
if(hits===0)
  console.log("your name is not in array");
else
  console.log(hits);

这里的o / p就像:: [ 'g', 's', 'k', 'g', 's', 'k' ]

现在,如果变量myName长度为100个字符怎么办?

2 个答案:

答案 0 :(得分:0)

如果您需要在myName中找到text,这将是更好的方法ihmo:

var text = 'sfs,gsk,fsd,exc,gsk,gks'.split(',')
//          ^ create an Array by splitting a string (on the comma)
   ,myName = 'gsk'
   ,otherName = 'aVeryLongAndStrangeNameWellItsNotHundredCharsButItsLongStill'
   ,myNameExists = text.indexOf(myName.toLowerCase()) > -1 // => true
//                                     ^check case insensitive   
   ,otherNameExists = text.indexOf(otherName.toLowerCase()) > -1// => false

// display:
console.log(myNameExists ? myName : 'myName not in text');
console.log(otherNameExists ? otherName : 'otherName not in text');

indexOf方法检查数组中是否存在参数(例如myName),并且存在匹配,它返回Array元素的索引。索引是> -1如果匹配。

如果“确切”表示区分大小写,请删除.toLowerCase()

请参阅indexOf上的MDN了解数组

答案 1 :(得分:0)

也许你可以试试jQuery的.inArray()

像这样的东西

var text=["Sfs", "gsk", "fsd", "exc", "gsk", "gks"];
var myName = "gsk";
var hits = jQuery.inArray( myName, text ); // returns 1

if(hits >= 0){ // name found }
else {// name not found }