我很难用正则表达式。任何帮助将不胜感激。
问题:当用户在路径中输入驱动器号时,我想显示错误。
例如:如果用户输入C:\或D:\或S:\ ....表单应该显示错误。 如果有人输入// remote server / example.txt,它应该允许它们继续。
http://plnkr.co/edit/jyKfOdnctnhCkIeT4r2Z?p=preview
<form name='myform'>
<input type="text" name='ip' ng-model="usd" ng-pattern="/^[a-zA-Z]:*$/"
ng-change="convert_to_btc()" placeholder="Enter path"/>
答案 0 :(得分:1)
ng-pattern
需要&#34;肯定&#34;正则表达式,一些模式定义什么字符串是正确的。因此,当您定义^[a-zA-Z]:*$
表示您只允许以ASCII字母开头的字符串时,则:
为零或更多次,直到字符串结尾。
你需要一个消极的向前看:
ng-pattern="/^(?![a-zA-Z]:\\)/"
^^^ ^
如果字符串开头后有一个ASCII字母,那么(?![a-zA-Z]:\\)
前瞻会使匹配失败,然后是:
,然后是\
。
请参阅this plunkr。
如果您不仅在使用strin开始时不允许使用字母+ :
+ \
ng-pattern="/^(?!.*\b[a-zA-Z]:\\)/"
^^