所以我有这段代码,
const urlPattern1 = new RegExp(
"(https?:\\/\\/(?:www\\.|(?!www))[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\\.[^\\s]{2,}[^.,!?:;\\s]+$/?|www\\.[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\\.[^\\s]{2,}[^.,!?:;\\s]+$/?|https?:\\/\\/(?:www\\.|(?!www))[a-zA-Z0-9]\\.[^\\s]{2,}|www\\.[a-zA-Z0-9]\\.[^\\s]{2,}[^.,!?:;\\s]+$/?)"
)
我希望它在URL后不包含任何标点符号。因此,现在如果我输入“ www.google.com / ...”,它将仅正确注册“ www.google.com/”。但是,如果我输入“ www.google.com。!”那么我希望它仍然只注册“ www.google.com”,但是现在它什么也没有注册。看来这只是正确地处理了句点,而其他所有标点符号(如!)都没有得到正确处理。有帮助吗?
答案 0 :(得分:0)
(?:http(?:s)?:\/\/)?(www\.[^\.]+\.\w+)
尝试一下。转到https://regexr.com并放入
www.google.com
www.google.com/...
www.google.com.!
http://www.google.co-!#{}
作为测试字符串,并将其作为正则表达式。应该可以。
www.google.com // Matches www.google.com
www.google.com/... // Matches www.google.com
www.google.com.! // Matches www.google.com
http://www.google.co-!#{} // Matches www.google.co