正则表达式匹配连续 - 。字符串

时间:2015-07-13 11:36:19

标签: javascript regex

我有一个连续的场景 - 。或.-不应该被允许在URL中。

EG。 https://www.test.-nichttps://www.test-.nic,而https://www.test.nic--xn/应该被允许

你能帮助我改进这个正则表达式吗?

/^(http|https|ftp):\/\/[a-z0-9]+(.[a-z0-9-]+)*.[a-z0-9]{2,5}(:[0-9]{1,5})?(\/.-‌​*)?$/i

1 个答案:

答案 0 :(得分:0)

您可以使用否定前瞻:

/^(https?|ftp):\/\/(?=.*?(?:\.-|-\.)[a-z0-9]+(\.[a-z0-9-]+)*\.[a-z0-9]{2,5}(:[0-9]{1,5})?$/i
如果网址中有(?=.*?(?:\.-|-\.)._,那么

-.是一个负面的预测,会导致匹配失败。