请教JavaScript正则表达式如何编写

只允许小写字母、数字、短横线(-),且不能以短横线开头或结尾

阅读 3.6k
4 个回答

/^[^\-]\d|[a-z]|\-[^\-]$/

  • RTFM
  • /^[a-z0-9][-a-z0-9]*$/

没看见结尾

/^(?!-)[a-z\d-]*[a-z\d]$/

以测试未通过, 字符串长度>=3才行

let s = "a-123sadaasd";

var a = /^[^\-][a-z\d-]+[^\-]$/.test(s);

console.log(a)
一楼答案测试通过,感谢一楼老哥提醒。
/^[^\-]\d|[a-z]|\-[^\-]$/
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题