我正在try 为名称验证创建一个regex模式. 应用程序名称必须包含以下内容:

  1. 可以指定小写字母数字字符
  2. 名称必须以字母字符开头,可以以字母数字字符结尾
  3. 允许使用连字符‘-’,但不能将其作为第一个或最后一个字符 e.g abc123, abc, abcd-1232

这就是我得到的[^\[a-z\]+(\[a-z0-9\-\])*\[a-z0-9\]$][1],它不能完美地工作.如果在该字段中输入单个字符,则验证失败.我怎样才能改进这个模式呢?提前谢谢您.

推荐答案

您可以使用以下模式:

^[a-z](?:[a-z0-9-]*[a-z0-9])?$

解释:

  • ^[a-z]以小写字母开头
  • (?: turn off capture group
    • [a-z0-9-]*零个或多个字母数字或破折号
    • [a-z0-9]必须以字母数字结尾,如果长度为>;1
  • )?将此组设为可选
  • $输入结束

Javascript相关问答推荐

使用Element.children在前后移动 node

错误:(0,react__WEBPACK_IMPORTED_MODULE_1__.useSYS State)不是函数或其返回值不可迭代

即使设置了父级的最大高度,固定位置的分区内容也不会滚动?

如何解决(不忽略)reaction详尽的linter规则,而不会在获取数据时导致无限的reender循环

如何使用CSS和JavaScript创建粘性、凝聚力的形状到形状(容器)变形?

为什么我的第二个OnClick Isloading值在TEK查询Mutations 查询中不起作用?

用相器进行向内碰撞检测

如何访问react路由v6加载器函数中的查询参数/搜索参数

还原器未正确更新状态

在使用HighChats时如何避免Datatables重新初始化错误?

从包含数百行的表中获取更改后的值(以表单形式发送到后端)的正确方法是什么?

将内容大小设置为剩余可用空间,但如果需要,可在div上显示滚动条

VSCode中出现随机行

按什么顺序接收`storage`事件?

在验证和提交表单后使用useNavigate()进行react 重定向,使用带有加载器和操作的路由

当我点击一个按钮后按回车键时,如何阻止它再次被点击

输入的值的类型脚本array.排序()

Node.js错误: node 不可单击或不是元素

我正在试着做一个TicTacToe Ai来和我玩.但是,我试着在第一个方块被点击时出现一个X,然后在第二个方块之后出现一个O

P5JS-绘制不重叠的圆