在rules中添加校驗(yàn)規(guī)則:
complexConfig: [
{
validator: (rule, value, callback) => {
const pushS = ['(', '['];
const popS = [')', ']'];
let sum = 0
value.split("").find((item) => {
if (pushS.indexOf(item) !== -1) {
this.push();//入棧
if (this.top < 0) {
callback(new Error('配置不合法秆乳!'));
}
}
if (popS.indexOf(item) !== -1) {
this.pop();//出棧
if (this.top < 0) {
callback(new Error('配置不合法蝇棉!'));
}
}
sum++;
})
if (sum == value.split("").length) {
if (this.top != 0) {//遍歷結(jié)束棧中不為空,則括號匹配失敗
callback(new Error('配置不合法仇参!'));
}
}
//對計(jì)算式進(jìn)行規(guī)則校驗(yàn)蛤铜,先去除括號
var res = value.replace(/\(/g, "").replace(/\)/g, "");
var reg = /^(([a-zA-Z0-9]+[-+*/])*[a-zA-Z0-9]+([-+*/][a-zA-Z0-9]+)*)$/;
if (res !== '') {
if (!reg.test(res)) {
callback(new Error('配置不合法嫩絮!'));
}
}
callback();
},
trigger: "blur"
}
],
在data中定義以下參數(shù):
dataStore: [],
top: 0
在methods中添加如下方法:
push(element) { // 進(jìn)棧
this.dataStore[this.top++] = element;
},
pop() { // 出棧
return this.dataStore[--this.top];
},