Aurelia 验证匹配
Aurelia Validation Matches
我想知道我将如何做一个 startsWith?这是一个自定义元素,它需要验证字符串是否以“\”
开头
<template>
<input disabled.bind="readonly" type="text" class="form-control" value.bind="value">
</template>
import {customElement, bindable, inject, bindingMode} from 'aurelia-framework';
import {activationStrategy} from 'aurelia-router';
import $ from 'jquery';
import {Validation} from 'aurelia-validation';
@customElement('url')
@bindable({name: 'value', attribute: 'value', defaultValue: '', defaultBindingMode: bindingMode.twoWay})
@bindable({name: 'readonly', attribute: 'disabled', defaultValue: false, defaultBindingMode: bindingMode.oneWay})
@inject(Element, Validation)
export class Url {
constructor(element, validation) {
this.element = element;
this.validation = validation.on(this)
.ensure(this.element)
.isNotEmpty()
.containsNoSpaces()
.matches('/^[\].*/');
}
bind(){
$('.input', this.element).val(this.value);
if(this.readonly){
$('.input', this.element).attr('readonly', 'readonly');
}
}
}
我查看了 http://aurelia.io/validation/#/logical-operators,我认为我做对了,但它抛出了一个错误:内部错误:类型错误:path.split 不是一个函数
- 函数
ensure()
接受验证字段的名称,而不是元素
- 无需用引号将正则表达式括起来
应该是这样的
this.validation = validation.on(this)
.ensure('value')
.isNotEmpty()
.containsNoSpaces()
.matches(/^\.*$/);
我想知道我将如何做一个 startsWith?这是一个自定义元素,它需要验证字符串是否以“\”
开头<template>
<input disabled.bind="readonly" type="text" class="form-control" value.bind="value">
</template>
import {customElement, bindable, inject, bindingMode} from 'aurelia-framework';
import {activationStrategy} from 'aurelia-router';
import $ from 'jquery';
import {Validation} from 'aurelia-validation';
@customElement('url')
@bindable({name: 'value', attribute: 'value', defaultValue: '', defaultBindingMode: bindingMode.twoWay})
@bindable({name: 'readonly', attribute: 'disabled', defaultValue: false, defaultBindingMode: bindingMode.oneWay})
@inject(Element, Validation)
export class Url {
constructor(element, validation) {
this.element = element;
this.validation = validation.on(this)
.ensure(this.element)
.isNotEmpty()
.containsNoSpaces()
.matches('/^[\].*/');
}
bind(){
$('.input', this.element).val(this.value);
if(this.readonly){
$('.input', this.element).attr('readonly', 'readonly');
}
}
}
我查看了 http://aurelia.io/validation/#/logical-operators,我认为我做对了,但它抛出了一个错误:内部错误:类型错误:path.split 不是一个函数
- 函数
ensure()
接受验证字段的名称,而不是元素 - 无需用引号将正则表达式括起来
应该是这样的
this.validation = validation.on(this)
.ensure('value')
.isNotEmpty()
.containsNoSpaces()
.matches(/^\.*$/);