0

我正在验证输入文本是 az 或 AZ 还是\s空白。

$scope.change= function(){
var regex = /(?:[a-zA-Z|\s]+)/;
var match = regex.exec($scope.userInputName);

上面的代码有效,并且match只捕获字母或空格。但是,当我提出以下声明时

        $scope.userInputName = match;

$scope.userInputNam变量仅等同于任何空格之前的字符串。因此,如果match持有abc d $scope.userInputName只会等同于abc

我正在使用 Angular 来称呼这个名字

4

2 回答 2

2

match将返回一个数组,而不是一个字符串(或者null如果字符串不匹配)。

如果您想要匹配的内容,这些内容位于数组的第一个条目中:

if (match) {
    $scope.userInputName = match[0];
}

更多在规范MDN上。

于 2013-08-31T13:36:28.097 回答
1

我正在验证输入文本是否为 az 或 AZ 或 \s 即空白。

在这种情况下,您的正则表达式是错误的:

var regex = /!(?:[a-zA-Z|\s]+)/;

它应该是:

var regex = /(?:[a-zA-Z\s]+)/;

Pipe在字符类中被视为文字管道字符,并且!在正则表达式前面是不需要的。

于 2013-08-31T13:36:36.590 回答