Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/467.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 多行字符串findIndex()_Javascript_String_Find_Multiline - Fatal编程技术网

Javascript 多行字符串findIndex()

Javascript 多行字符串findIndex(),javascript,string,find,multiline,Javascript,String,Find,Multiline,我试图在字符串中找到一个多行子字符串 我的代码: 数据=`if res{ 新通知{ 标题:TAPi18n.“成功”, 文字:TAPi18n.uuuu‘上传图像’, 键入:“info”, 样式:“bootstrap3” }; } 如果出错{ 返回新PNotify{ 标题:TAPi18n.“错误”, 文本:呃, 键入:“错误”, 样式:“bootstrap3” }; }`; /*找不到*/ match=`new PNotify{ 标题:TAPi18n.“错误”, 文本:呃, 键入:“错误”, 样式

我试图在字符串中找到一个多行子字符串

我的代码:

数据=`if res{ 新通知{ 标题:TAPi18n.“成功”, 文字:TAPi18n.uuuu‘上传图像’, 键入:“info”, 样式:“bootstrap3” }; } 如果出错{ 返回新PNotify{ 标题:TAPi18n.“错误”, 文本:呃, 键入:“错误”, 样式:“bootstrap3” }; }`; /*找不到*/ match=`new PNotify{ 标题:TAPi18n.“错误”, 文本:呃, 键入:“错误”, 样式:“bootstrap3” }`; 控制台日志数据; console.logmatch;
console.logdata.indexOfmatch 问题是匹配和数据之间的空间量不匹配

您可以将match转换为允许可变空白量的正则表达式

第一个match.replace用于转义字符串中的所有特殊regexp字符,第二个将空格转换为\s+,以便匹配任何数量

数据=`if res{ 新通知{ 标题:TAPi18n.“成功”, 文字:TAPi18n.uuuu‘上传图像’, 键入:“info”, 样式:“bootstrap3” }; } 如果出错{ 返回新PNotify{ 标题:TAPi18n.“错误”, 文本:呃, 键入:“错误”, 样式:“bootstrap3” }; }`; match=`new PNotify{ 标题:TAPi18n.“错误”, 文本:呃, 键入:“错误”, 样式:“bootstrap3” }`; re=new RegExpmatch.replace/[-\/\^$*+?.|[\]{}]/g,\\$&.replace/\s+/g,\\\s+; 结果=data.matchre; console.logresult&&result.index 在比较字符串之前,需要对其进行规范化

这里有一个简单的函数,可以将字符串按行分割,并在将所有内容重新连接到一起之前删除每行的空白

函数normalizeStringstr{ 返回str.split'\n'.mape=>e.trim.join } 输出: 数据=`if res{ 新通知{ 标题:TAPi18n.“成功”, 文字:TAPi18n.uuuu‘上传图像’, 键入:“info”, 样式:“bootstrap3” }; } 如果出错{ 返回新PNotify{ 标题:TAPi18n.“错误”, 文本:呃, 键入:“错误”, 样式:“bootstrap3” }; }`; /*找不到*/ match=`new PNotify{ 标题:TAPi18n.“错误”, 文本:呃, 键入:“错误”, 样式:“bootstrap3” }`; //规范化字符串 var normalizedData=data.split'\n'.mape=>e.trim.join var normalizedMatch=match.split'\n'.mape=>e.trim.join console.lognormalizedData console.lognormalizedMatch
console.lognormalizedData.indexofnormalizeddmatch;match在每行开头的空格数与数据的匹配部分的空格数不同。如果要允许可变的空格数,则需要使用正则表达式。