正则高手请教,一个限制整体长度问题

正则:/^[u4e00-u9fa5]+(-[u4e00-u9fa5]+)*$/

说明:在网上找的匹配中文姓名,少数民族用横线分割,我现在想整体长度限制在2-6位之间,求指教...先谢谢了

阅读 2.9k
2 个回答
/(^[\u4e00-\u9fe5]{2,2}(-[\u4e00-\u9fe5]{2,4})*$)|(^[\u4e00-\u9fe5]{3,3}(-[\u4e00-\u9fe5]{2,3})*$)/

| 操作符的作用是匹配前面的子表达式或后面的子表达式。
因为 - 前面可能有 2 或 3 个字,如果限制整体字数,- 后面匹配的字数需要根据前面变化,所以共有两种情况,用 | 操作符进行选择。

/^(?=.{2,6}$)[u4e00-u9fa5]+(-[u4e00-u9fa5]+)*$/试试

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题