我终于使用了另一种逻辑(使用“let”和break),但我很乐意(如果可行的话)另一种解决方案: 我已经构建了一个验证服务,它迭代(注入)包含每个表达式的正则表达式和相关消息(和输入元素)的对象列表。我正在使用every()方法迭代正则表达式。在测试正则表达式时,服务知道返回true或false。 问题是除了得到true \ false我希望服务的使用者获得相关的消息和输入元素。所以,在服务类中我有2个属性(让我们称之为“消息”和“元素”),我想相应地设置它们。但是,当我在每一个的背景下 - “这个”指的是上下文而不是类。我想把这两个属性作为参数发送到每个方法。这是最好的做法吗? 见相关代码:
export class userValidation
{
constructor() {
this.validationMessage = '';
this.validationElement = '';
//}
validateByExpression(elementValidator, valueToValidate, functionToExec) {
var validationMessage = this.validationMessage;//Trying to get reference - no go
if (elementValidator.regex.test(valueToValidate) == false)
{
//This is the part where I need to store\return the relevant message
validationMessage = elementValidator.message; // fails
return false;
}
else
{
return true;
}
}
validate(validationElement, elementName, valueToValidate)
{
var regexExpList = new Array(validationElement);
var getValidationMessage = this.getValidationMessage;
var validateByExpression = this.validateByExpression;
var validationMessage = this.validationMessage;
return regexExpList.every(function(regexExp) { return
getValidationMessage(validateByExpression, regexExp[elementName],
valueToValidate, validationMessage) });
}
}