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个字符怎么办?
答案 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 }