2
我有這個作爲我的正則表達式如下
(^([Aa][Ss])[0-9]{8})|(^6[0-9]{7})
我得到控制檯的錯誤,但它的作品!:
libraries-c8d65edf41.js:22505 Error: [$parse:lexerr] Lexer Error: Unexpected next character at columns 1-1 [^] in expression [(^([Aa][Ss])[0-9]{8})|(^6[0-9]{7})].
http://errors.angularjs.org/1.5.2/ $ parse/lexerr?p0 =意外%20nextharacter%20 & p1 = s%201-1%20%5B%5E%5D & p2 =(%5E(%5BAa%5D%5BSs%5D)%5B0-9%5D %7B 8%7D)%7C(%5E6%5B0-9%5D%7B7%7D)
任何想法關於如何擺脫控制檯錯誤? 謝謝。
這裏是指令的html
<div class="input">
<div data-ng-class="{'input-group': label}">
<div class="input-group-addon"
data-ng-if="label">
{{label}}
<span class="required"
data-ng-if="required && isEditable">
*
</span>
</div>
<div class="input-group-addon required"
data-ng-if="!label && required && isEditable">
*
</div>
<div class="form-control"
title="{{object[key] || 'N/A'}}"
data-ng-if="!isEditable">
<span>{{object[key] || 'N/A'}}</span>
</div>
<div class="form-control editable"
title="{{object[key] || 'N/A'}}"
data-ng-if="isEditable && !isEditing"
data-ng-click="edit()">
<span>
<a href="">{{object[key] || 'N/A'}}</a>
</span>
</div>
<input class="form-control"
data-ng-if="isEditable && isEditing"
data-ng-model="model.value"
data-ng-keydown="onKeypress($event)"
data-ng-blur="save()"
data-ng-pattern="regexPattern"
name="{{inputName}}"
data-csdp-autofocus />
</div>
和這裏是指令的JS
(function (angular) {
'use strict';
angular.module('commons.directives.forms')
.directive('exInput', InputDirective);
InputDirective.$inject = ['$q', 'commons.constants.KeyCodeConstant'];
function InputDirective ($q, KeyCodeConstant) {
return {
restrict: 'A',
replace: true,
templateUrl: 'commons/directives/forms/input.directive.html',
link: link,
scope: {
input: '@exInput',
isEditable: '=?',
object: '=ngModelObject',
key: '@ngModelKey',
autofocus: '=?',
required: '@ngRequired',
inputName: '@inputName',
regexPattern: '@ngPattern',
preEditing: '&',
onEditing: '&',
onSave: '&',
onCancel: '&',
onFinally: '&',
onInit: '&'
}
};
function link (scope) {
scope.edit = edit;
scope.save = save;
scope.cancel = cancel;
scope.onKeypress = onKeypress;
scope.label = scope.input;
scope.model = { value: '' };
scope.isEditing = scope.autofocus ? scope.autofocus : false;
var oldValue;
function edit() {
$q.when(scope.preEditing()).then(function() {
oldValue = scope.object[scope.key];
scope.model.value = oldValue;
scope.label = '> ' + scope.input;
scope.onEditing();
scope.isEditing = true;
});
}
function save() {
scope.object[scope.key] = scope.model.value;
scope.onSave();
onFinally();
}
function cancel() {
scope.object[scope.key] = oldValue;
scope.onCancel();
onFinally();
}
function onKeypress (event) {
if (event.keyCode === KeyCodeConstant.ENTER) {
save();
} else if (event.keyCode === KeyCodeConstant.ESC) {
cancel();
}
}
function onFinally() {
scope.label = scope.input;
scope.isEditing = false;
scope.onFinally();
}
scope.onInit({ $scope: scope });
}
}
})(角度);
這是我如何使用它;
<input class="form-margin"
data-ex-input="Assignment ID"
data-is-editable="true"
data-ng-model-object="vm.contract"
data-ng-pattern="{{vm.AssignmentIdRegex}}"
data-input-name="assignmentId"
data-ng-model-key="assignmentId" />
<div class="alert alert-info"
data-ng-show="contractForm.assignmentId.$error.pattern && contractForm.assignmentId.$dirty">
<strong>Assignment ID: </strong>ie. AS12345678 or 61234567
</div>
我試過了,但它沒有爲我工作。問題很可能來自我的指令。我做了一個輸入指令,現在正在將該正則表達式傳遞給該指令。 –
你檢查過普朗克嗎? –
我已經添加了完整的問題。因爲我認爲它源於指令本身,關於如何傳遞正則表達式,因爲它工作時,我不添加兩個/之前和之後,但我得到控制檯上的錯誤消息。並停止工作,當我添加兩個/ –