如何在网址(regex)中不包括结尾标点符号

时间:2018-07-02 17:43:08

标签: javascript regex url

所以我有这个代码:

const urlPattern = new RegExp(
  "(https?:\\/\\/(?:www\\.|(?!www))[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\\.[^\\s]{2,}/?|www\\.[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\\.[^\\s]{2,}/?)"
)

我注意到,如果我用标点符号结尾地址,则该标记将包含在地址中。有什么办法可以排除它? “您好,这是一个字符串google.com,更多内容www.address.co。”我要这个给[[你好,这是一个字符串“,” google.com“,”,更多内容“,” www.address.co“,”。“]

就目前而言,我想假设我们不提交标点符号结尾的URL,但是如果后面还有另一个非标点符号,非空格字符(例如“ www.google.com/blah”),可以使用标点符号的URL .2stuff?here”是可以的网址,但我希望使用“ www.google.com/”。只需返回[“ www.google.com/”,“。”]和句点分开即可。您对此有何建议?

1 个答案:

答案 0 :(得分:0)

尝试一下,只需在语句的最后添加另一个模式

const urlPattern = new RegExp(
  "(https?:\\/\\/(?:www\\.|(?!www))[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\\.[^\\s]{2,}[.,]/?|www\\.[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\\.[^\\s]{2,}[.,]/?)"
)