目前,我发现了一个似乎正在做的事情的正则表达式here,并在regex101上传递了一些测试。但是,相同的表达式在角度ng-pattern
中不起作用:
这是表达式:
/^(http(s?):\/\/)?(((www\.)?+[a-zA-Z0-9\.\-\_]+(\.[a-zA-Z]{2,3})+)|((?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)))(\/[a-zA-Z0-9\_\-\s\.\/\?\%\#\&\=]*)$/?
.
产生此错误:
Invalid regular expression: /^(http(s?)://)?(((www.)?+[a-zA-Z0-9.-_]+(.[a-zA-Z]{2,3})+)|((?:(?:25[0-5]|2[0-4][0-9]|[01]?[0…){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)))(/[a-zA-Z0-9_-s./?%#&=]*)?$/: Nothing to repeat
.
也许我已经走得太远了,不需要正则表达式。是否有适合接受URL和IP地址的东西?
答案 0 :(得分:1)
看起来像\消失,尝试使用像这样的双反斜杠
^(http(s?):\\/\\/)?(((www\\.)?+[a-zA-Z0-9\\.\\-\\_]+(\\.[a-zA-Z]{2,3})+)|(\\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\b))(\\/[a-zA-Z0-9\\_\\-\\s\\.\\/\\?\\%\\#\\&\\=]*)?$
这是因为反斜杠在字符串中被解释为转义字符。