Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 验证子域时我的正则表达式出现问题?_Javascript_Regex - Fatal编程技术网

Javascript 验证子域时我的正则表达式出现问题?

Javascript 验证子域时我的正则表达式出现问题?,javascript,regex,Javascript,Regex,大家好 我需要子域类似于: sub1 (letters or digits) sub1-sub (letters or digits-letters or digits) 所以我使用下面的JavaScript正则表达式,但它总是返回false 我不知道为什么,请告诉我 var reg = /^[A-Z0-9]?[-A-Z0-9]$/i; 也许你忘了一个* var reg = /^[A-Z0-9]?[-A-Z0-9]*$/i; 您的模式只描述两个字符,其中第一个可以省略 我想你想要这个:

大家好 我需要子域类似于:

sub1 (letters or digits)
sub1-sub (letters or digits-letters or digits)
所以我使用下面的JavaScript正则表达式,但它总是返回false 我不知道为什么,请告诉我

var reg  = /^[A-Z0-9]?[-A-Z0-9]$/i;

也许你忘了一个*

var reg  = /^[A-Z0-9]?[-A-Z0-9]*$/i;

您的模式只描述两个字符,其中第一个可以省略

我想你想要这个:

/^[A-Z0-9]+(?:-[A-Z0-9]+)*$/i

你需要澄清你的问题。你到底想匹配什么?我给出的正则表达式确实会匹配您作为示例给出的两个子域,因此您必须给它不同的输入。你给它整个域吗?请注意,这也允许空字符串以及不以字母数字字符开头或结尾的字符串(例如
-
foo-
-bar
)和包含多个连续连字符的字符串(例如
-
foo--bar
,等等)。