The URL http://www.ftd.de/rss2 http://www.ftd.de/rss2当我在这个(不冒险的)中对照下面的正则表达式检查它时,它是无效的<mx:RegExValidator>
:
<mx:RegExpValidator id="validatorURL" required="true" enabled="true"
source="{inputURL}" property="text" triggerEvent="focusOut"
expression="{resourceManager.getString('resources','general.urlRegExp')}"
flags="i" />
此 RegExValidator 具有以下 RegEx 正确验证 URL只要它们不以数字结尾。任何其他有效的 URL 似乎都是有效的。
这是为什么?弯曲错误?
RegEx
I use 这个正则表达式 https://gist.github.com/729294 by 迭戈·佩里尼 https://github.com/dperini,这得到了最好的结果这个比较 http://mathiasbynens.be/demo/url-regex.
^(?:(?: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\u00a1-\uffff0-9]+-?)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]+-?)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?$
正则表达式本身与上面的 URL 配合得很好,它在我迄今为止测试过的任何非 Flex 验证器中都能正确验证:
- QuickREx http://bastian-bergerhoff.com/eclipse/features/web/QuickREx/toc.html
- RegExPal http://regexpal.com/
- JRegExp测试器 http://jregexptester.sourceforge.net/
- 正则表达式测试器 http://sourceforge.net/projects/regextester/files/RegExTester%20Binaries/3.2.0.0/
我用两个基于 Flex 的验证器检查了 RegEx,但都无法验证any网址:
- http://gskinner.com/RegExr/ http://gskinner.com/RegExr/
- http://ryanswanson.com/regexp/#start http://ryanswanson.com/regexp/#start
我们使用 Flex SDK 4.6.0.23201。