我正在尝试解析一个包含两个数字的字符串,两个数字都可以在1到3个数字之间,并且中间会有一个冒号。以下是一些示例:
“ 1:1”
“ 1:12”
“ 12:1”
“ 123:12”
此外,给定的字符串也可能无效,因此我需要检测是否为非法。到目前为止,我为确保字符串有效而进行的尝试看起来像这样:.match(/[1-9]\:[1-9]/);
。但是后来我注意到,如果输入这样的字符串:"characters12:4characters"
,这将行不通。我将如何验证字符串以确保其格式为x:y?
任何帮助将不胜感激。
编辑:开头为0的数字有效,但可能无法给出。
答案 0 :(得分:2)
您可以使用
/^\d{1,3}:\d{1,3}$/
请参见regex demo
详细信息
^
-start of a string \d{1,3}
-一,两位或三位数字(\d
是与任何数字匹配的shorthand character class(也可以写为[0-9]
字符类)和{ {1}}是limited quantifier,它与1到3个连续出现的量化子模式匹配){1,3}
-冒号:
-一,两位或三位数\d{1,3}
-end of the string。