正则表达式,仅允许单词和空格

时间:2016-08-30 19:39:44

标签: javascript angularjs

<input name="city" ng-pattern="([\w ]+)" 
        invalid-message="'City is invalid.'" 
           ng-model="city" type="text" 
            required-message="'You must enter a city.'" required >

我有一个上面的输入字段,我必须只允许alphabets and spaces alone,但上面的那个失败了......抛弃我"City is invalid"。我尝试了不同的模式组合,但都失败了...... ng-pattern="([a-zA-z ]+)"

2 个答案:

答案 0 :(得分:2)

您的ng-pattern表达式不会计算为字符串或正则表达式对象。

如果要对正则表达式进行硬编码,请将其包装在引号中,以便将其作为字符串进行求值:

ng-pattern="'[A-Za-z ]+'"

或者,将ng-pattern绑定到变量:

<子> HTML:
ng-pattern="regex"
<子> JS:
$scope.regex = '[A-Za-z ]+';

请注意,^$是不必要的,因为它们在传递字符串参数时是隐含的:

  

如果表达式求值为一个字符串,那么在将其包装成^$个字符后,它将转换为RegExp。

答案 1 :(得分:0)

以下匹配来自a-z的任何字符以及从字符串的开头到结尾的空格:

^ [A-ZA-Z \ S] * $