繁体   English   中英

如何简化此JavaScript正则表达式?

[英]How to simplify this JavaScript regex?

我需要创建一个正则表达式,其结果将以太匹配一个可选的(数字或特定代码)和可选的“-”以及另一个可选的(数字或特定代码)不为空。

这是我拥有的正则表达式,它可以正常工作,但是我想简化一下:

/((\d+|xs|sm|md|lg|xl)|((\d+|xs|sm|md|lg|xl)-)|((\d+|xs|sm|md|lg|xl)-(\d+|xs|sm|md|lg|xl))|(-)|(-(\d+|xs|sm|md|lg|xl)))/

/* these should all work */
"34-56"
"-56"
"34"
"34-"
"-"
"xs-md"
"-lg"
"sm"
"md-"

/* these should not work */
"test"
"500px"
"16-max"
""

测试正则表达式: https : //regex101.com/r/Uz2fGE/2

试试这个!

((\d*|xs|sm|md|lg|xl|-){1}-?(\d*|xs|sm|md|lg|xl))?

参考: https : //developer.mozilla.org/ko/docs/Web/JavaScript/Guide/%EC%A0%95%EA%B7%9C%EC%8B%9D

*: >= 0
?: 0 or 1
(): pattern
\d: number
|: or 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM