javascript - JavaScript 中的正则表达式可选字符集

标签 javascript regex

我想用以下条件验证 Name 数据文件

  • 名称包含数字 0 到 9,不全是数字
  • 名称可以包含连字符 -,前提是它不是第一个或最后一个 名字的特点
  • 名称必须包含2个字符,其余字符可选

所以我尝试了以下正则表达式

    const regExp = /^[a-zA-Z0-9]+[a-zA-Z_-]+[a-zA-Z0-9]$/;

我至少需要两个字符,其余的在正则表达式中是可选的 一切正常,除了最后这个 [a-zA-Z0-9],我想把它设为可选

最佳答案

你可以考虑使用

/^(?=.{2})(?![^a-zA-Z]+$)[a-zA-Z0-9]+(?:[_-][a-zA-Z0-9]+)*$/

参见 regex demo

详情

  • ^ - 字符串的开始
  • (?=.{2}) - 至少两个字符
  • (?![^a-zA-Z]+$) - 字符串不能没有 ASCII 字母
  • [a-zA-Z0-9]+ - 1+ 个 ASCII 数字字符
  • (?:[_-][a-zA-Z0-9]+)* - 0 个或多个 _- 后跟 1+ 个 ASCII alnum 字符
  • $ - 字符串结尾。

关于javascript - JavaScript 中的正则表达式可选字符集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57808547/

相关文章:

javascript - jQuery 在大量文本中查找/替换

regex - 向数字添加逗号时需要环视解释

regex - 在 Groovy 中获取 Mac 地址

javascript - 堆积条形图在图表中重叠

javascript - 如何使 PJAX 与 Express 和 EJS 一起工作?

javascript - 获取http ://0. 0.0.0 :8080/index. html?age=8&rel= 404(/未找到对象)

javascript - 使用 Knockout 更改单选按钮时设置复选框

javascript - 使用正则表达式在 Javascript 中形成一个没有前导零的数字

regex - 正则表达式帮助

javascript - 在 Javascript 中使用参数访问 @URL.action