首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么是用户名的正则表达式不应该是根

什么是用户名的正则表达式不应该是根
EN

Stack Overflow用户
提问于 2015-09-10 09:10:16
回答 1查看 72关注 0票数 0

我试过的

代码语言:javascript
复制
^((?!root).)*$

结果

  • root无效用户名
  • admin有效用户名
  • rootwee无效用户名(这应该是有效的)
  • root123无效用户名(这应该是有效的)

我试着将.regex中移除,但是它不起作用。

你能帮个忙吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-10 09:14:31

regex的特性是一个经过调整的贪婪令牌,它不允许整个输入中的某个子字符串。因此,"rootwee“和"root123”是无效的。

您可以使用

代码语言:javascript
复制
/^(?!root$)/

请参阅演示

锚定的前瞻性(?!root$)确保整个输入不等于root,但是字符串本身可以包含root

注意,当使用文本regex声明时,我们不需要匹配整个输入字符串。

下面是一个演示片段:

代码语言:javascript
复制
function formCtrl($scope){
  $scope.onSubmit = function(){
    alert("form submitted");
  }
}
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app ng-controller="formCtrl">
  <form name="myForm" ng-submit="onSubmit()">
    <input type="text" name="field" ng-model="formCtrl" ng-pattern="/^(?!root$)/" required>
    <span ng-show="myForm.field.$error.pattern">Not valid!</span>
    <span ng-show="myForm.field.$error.required">This field is required!</span>
    <input type="submit" value="submit"/>
  </form>
</div>

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32497629

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档