Javascript 在一个复杂的字符串中一个接一个地提取字符串
我有这根绳子-Javascript 在一个复杂的字符串中一个接一个地提取字符串,javascript,Javascript,我有这根绳子- ContactTrigger: execution of AfterInsert caused by: System.DmlException: Update failed. First exception on row 0 with id 0032200000AYK5AAAX; first error: FIELD_CUSTOM_VALIDATION_EXCEPTION, Spouse Cannot be more than 1: [] Class.ContactTrigg
ContactTrigger: execution of AfterInsert
caused by: System.DmlException: Update failed. First exception on row 0 with id 0032200000AYK5AAAX; first error: FIELD_CUSTOM_VALIDATION_EXCEPTION, Spouse Cannot be more than 1: []
Class.ContactTriggerHelper.updateDependentData: line 309, column 1
Trigger.ContactTrigger: line 26, column 1
我需要确定此字符串是否包含字段\自定义\验证\异常,我需要提取消息“配偶不能超过1”的这一部分
这是我无法做到的
我试过这个-
var pageErrors = saveResult.error[0].pageErrors[0].message;
console.log('pageErrors--->'+pageErrors);
var errMessage;
if(pageErrors.includes('FIELD_CUSTOM_VALIDATION_EXCEPTION')){
console.log('Inside includes');
console.log('pageErrors.indexOf("FIELD_CUSTOM_VALIDATION_EXCEPTION")-->'+pageErrors.indexOf('FIELD_CUSTOM_VALIDATION_EXCEPTION'));
console.log('pageErrors.lastIndexOf("FIELD_CUSTOM_VALIDATION_EXCEPTION")-->'+pageErrors.lastIndexOf('FIELD_CUSTOM_VALIDATION_EXCEPTION,'));
errMessage = pageErrors.substring(pageErrors.indexOf('FIELD_CUSTOM_VALIDATION_EXCEPTION'),pageErrors.lastIndexOf('FIELD_CUSTOM_VALIDATION_EXCEPTION,'));
}
你可以试试这个
FIELD_CUSTOM_VALIDATION_EXCEPTION,\s*([^:]+)
让findValue=str=>{
返回str.match/FIELD\u CUSTOM\u VALIDATION\u EXCEPTION\s*[^:][/i
}
let str=`ContactTrigger:AfterInsert的执行
原因:System.DmlException:更新失败。第0行id为0032200000AYK5AAAX的第一个异常;第一个错误:字段\自定义\验证\异常,配偶不能超过1:[]
Class.ContactTriggerHelper.updateDependentData:第309行第1列触发器。ContactTrigger:第26行第1列`
console.logfindValuestr
console.logfindValuestr[1]
让str2=`ContactTrigger:AfterInsert的执行
原因:System.DmlException:更新失败。第0行id为0032200000AYK5AAAX的第一个异常;
Class.ContactTriggerHelper.updateDependentData:第309行第1列触发器。ContactTrigger:第26行第1列`
logfindValuestr2您甚至可以做一些比正则表达式更简单、更快的事情。因为您知道需要跟踪的确切错误消息,所以可以将错误字符串从错误消息的结尾拆分到行的结尾或最多:个字符。如果需要删除任何周围的空格,还可以选择对其进行修剪 因此: const str=`ContactTrigger:执行AfterInsert 原因:System.DmlException:更新失败。第0行id为0032200000AYK5AAAX的第一个异常;第一个错误:字段\自定义\验证\异常,配偶不能超过1:[] Class.ContactTriggerHelper.updateDependentData:第309行第1列触发器。ContactTrigger:第26行第1列`; 常量错误='字段\自定义\验证\异常'; 常数ind=str.indexOfERR; 让msg=-1