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 不是一个函数

  1. 函数 ensure() 接受验证字段的名称,而不是元素
  2. 无需用引号将正则表达式括起来

应该是这样的

this.validation = validation.on(this)
                         .ensure('value')   
                         .isNotEmpty()
                         .containsNoSpaces()
                         .matches(/^\.*$/);