Javascript 检查文本是否包含序列。字符的邻接不是必需的
我试图做一个函数,如果序列存在,它将回答true,如果序列不存在,它将回答false。这和普通的检查字符串是否包含子字符串不同,因为不需要字符的邻接。例如,在字符串“指环王”中,子字符串“LOTR”或“other”应该返回true,因为它们可以在字符串中找到。使用典型的Javascript 检查文本是否包含序列。字符的邻接不是必需的,javascript,string,contains,Javascript,String,Contains,我试图做一个函数,如果序列存在,它将回答true,如果序列不存在,它将回答false。这和普通的检查字符串是否包含子字符串不同,因为不需要字符的邻接。例如,在字符串“指环王”中,子字符串“LOTR”或“other”应该返回true,因为它们可以在字符串中找到。使用典型的 函数包含(文本、序列){ if(text.indexOf(sequence)!=-1){ 返回true; } 返回false; } console.log(包含(“指环王”);//真的 console.log(包含(“指环王”
函数包含(文本、序列){
if(text.indexOf(sequence)!=-1){
返回true;
}
返回false;
}
console.log(包含(“指环王”);//真的
console.log(包含(“指环王”、“领主”);//真的
console.log(包含(“指环王”、“镜头”);//真的
console.log(包含(“指环王”、“其他”);//真的
console.log(包含(“指环王”、“洛托”);//真的
console.log(包含(“指环王”、“领主”);//假的
console.log(包含(“指环王”、“Works”);//假的
console.log(包含(“指环王”、“z”);//False
循环法的钻孔(但有效):
编辑以在已知结果时尽快终止循环;例如,序列中剩余的字符多于文本中的字符
函数包含(文本、序列){
对于(变量i=0,j=0;i
循环法的钻孔(但有效):
编辑以在已知结果时尽快终止循环;例如,序列中剩余的字符多于文本中的字符
函数包含(文本、序列){
对于(变量i=0,j=0;i console.log(包含(“指环王”、“z”);//False
您可以将序列
转换为正则表达式,并检查文本是否匹配。像这样:
函数包含(文本、序列){
if(!sequence.length)返回true;//如果sequence为空,则返回true
var regex=new RegExp(sequence.split(“”).join('.*');//生成regex
return regex.test(text);//返回文本是否匹配
}
日志(包含(“指环王”);
控制台日志(包含“指环王”、“领主”);
控制台日志(包含“指环王”、“镜头”);
控制台日志(包含“指环王”、“其他”);
控制台日志(包含“《指环王》”、“LOTR”);
控制台日志(包含“指环王”、“领主”);
日志(包含“指环王”、“Works”);
控制台日志(包含“指环王”、“z”)
您可以将序列
转换为正则表达式,并检查文本是否匹配。像这样:
函数包含(文本、序列){
if(!sequence.length)返回true;//如果sequence为空,则返回true
var regex=new RegExp(sequence.split(“”).join('.*');//生成regex
return regex.test(text);//返回文本是否匹配
}
日志(包含(“指环王”);
控制台日志(包含“指环王”、“领主”);
控制台日志(包含“指环王”、“镜头”);
控制台日志(包含“指环王”、“其他”);
控制台日志(包含“《指环王》”、“LOTR”);
控制台日志(包含“指环王”、“领主”);
日志(包含“指环王”、“Works”);
控制台日志(包含“指环王”、“z”)
您可以将序列
转换为不区分大小写的正则表达式,格式如下:
/L.*O.*T.*R/i
…其中,*
匹配任何字符的零个或多个:
函数包含(文本、序列){
返回(新RegExp(
顺序。拆分(“”)
.map((c)=>c.replace(/[-\/\^$*+?.();[\]{}]/g,'\\$&'))
.加入(“.”),
“我”)
).测试(文本)
}
console.log(包含(“指环王”);//真的
console.log(包含(“指环王”、“领主”);//真的
console.log(包含(“指环王”、“镜头”);//真的
console.log(包含(“指环王”、“其他”);//真的
console.log(包含(“指环王”、“洛托”);//真的
console.log(包含(“指环王”、“领主”);//真的
console.log(包含(“指环王”、“Works”);//假的
console.log(包含(“指环王”、“z”);//假的
log(包含“你好吗?”,“i.?”);//True
您可以将序列
转换为不区分大小写的正则表达式,格式如下:
/L.*O.*T.*R/i
…其中,*
匹配任何字符的零个或多个:
函数包含(文本、序列){
返回(新RegExp(
顺序。拆分(“”)
.map((c)=>c.replace(/[-\/\^$*+?.();[\]{}]/g,'\\$&'))
.加入(“.”),