RegExpValidator does not validate a URL pattern correctly

前端 未结 3 2018
再見小時候
再見小時候 2021-01-26 04:58

The URL http://www.ftd.de/rss2 is not valid when I check it against the below RegEx in this (unadventurous) :



        
3条回答
  •  闹比i
    闹比i (楼主)
    2021-01-26 05:35

    nhahtdh's answer made me check this issue again. It didn't solve the problem, but it pointed me in the right direction. I'll use the RegExp from his answer, as the suggestion conversion from \uhhhh to \x{hhhh} is necessary as well.

    Edit: solution

    The actual problem is that when passing a RegExp as String to a RegExpValidator it has to be double escaped. So the Pattern should look like this if it is loaded from a resources file:

    general.urlRegExp=^(?:(?:https?|ftp):\\/\\/)(?:\\S+(?::\\S*)?@)?(?:(?!10(?:\\.\\d{1,3}){3})(?!127(?:\\.\\d{1,3}){3})(?!169\\.254(?:\\.\\d{1,3}){2})(?!192\\.168(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\x{00a1}-\\x{ffff}0-9]+-?)*[a-z\\x{00a1}-\\x{ffff}0-9]+)(?:\\.(?:[a-z\\x{00a1}-\\x{ffff}0-9]+-?)*[a-z\\x{00a1}-\\x{ffff}0-9]+)*(?:\\.(?:[a-z\\x{00a1}-\\x{ffff}]{2,})))(?::\\d{2,5})?(?:\\/[^\\s]*)?$
    

    Now this can be used directly in the RegExpValidator:

    
    

提交回复
热议问题