Javascript - 需要一个正则表达式来匹配美国附表 B (HTS) 编号."0000.00.0000&

Javascript - Need a regex to match US Schedule B (HTS) numbers. "0000.00.0000"

本文关键字:0000 HTS quot 美国 编号 一个 Javascript 正则表达式      更新时间:2023-09-26

我似乎做不好。我需要一个正则表达式只允许数字和小数(0-9(,并且采用以下格式:

 1234.56.7890

 1234567890

它可以以 0 开头,但必须是 10 位数字(如果没有小数(,或者 12 位小数位数字(在正确的位置 (xxxx.xx.xx(。

感谢您的任何帮助。

你可以

在这里使用^'d{4}('.?)'d{2}'1'd{4}$^$锚点用于强制匹配整个字符串。 ('.?)匹配点(如果存在(,则'1再次强制使用点(如果第一个匹配(或没有点(如果不匹配(。

您可以在此处找到一些匹配和不匹配的示例。

这个应该工作:/^('d{4}'.'d{2}'.'d{4})|('d{10})$/ .

它将匹配每个字符串与模式: xxxx.xx.xxxxxxxxxxxxxx(x 是一个数字(。

^(('d{4}'.'d{2}'.'d{4})|('d{10}))$

请注意,应转义点符号。

^ asserts position at start of a line
1st Capturing Group (('d{4}'.'d{2}'.'d{4})|('d{10}))
1st Alternative ('d{4}'.'d{2}'.'d{4})
2nd Capturing Group ('d{4}'.'d{2}'.'d{4})
'd{4} matches a digit (equal to [0-9])
{4} Quantifier — Matches exactly 4 times
'. matches the character . literally (case sensitive)
'd{2} matches a digit (equal to [0-9])
{2} Quantifier — Matches exactly 2 times
'. matches the character . literally (case sensitive)
'd{4} matches a digit (equal to [0-9])
2nd Alternative ('d{10})
3rd Capturing Group ('d{10})
'd{10} matches a digit (equal to [0-9])
{10} Quantifier — Matches exactly 10 times
$ asserts position at the end of a line

您可以找到任何正则表达式的解释,并使用站点进行测试 https://regex101.com/或 http://regexr.com/

我已经测试了这个正则表达式([0-9]{10})|([0-9]{4}(.)[0-9]{2}(.)[0-9]{4}),它似乎回答了你的问题。

在此链接上测试

/'d'{4}'.'{0,1}'d'{2}'.'{0,1}'d'{4}

比尼科万克的答案略有改进,因为.{0,1} 仅匹配一个点或零个点,而裸 '." 将匹配任何字符的单个实例