以下是一个 Dart 正则表达式示例,用于匹配 URL 地址:
import 'dart:html';
void main() {
RegExp urlPattern = RegExp(r'^(http(s)?:\/\/)?[^\s\.]+\.[^\s]{2,}$');
InputElement urlInput = querySelector('#url-input');
urlInput.onInput.listen((event) {
String url = urlInput.value;
bool isValid = urlPattern.hasMatch(url);
if (isValid) {
print('Valid URL: $url');
} else {
print('Invalid URL: $url');
}
});
}
该正则表达式可匹配以下类型的 URL:
http://example.com
https://www.example.com
example.com
其中:
^
匹配字符串的开头。(http(s)?:\/\/)?
匹配可选的http://
或https://
。[^\s\.]+
匹配任何非空格和非点号的字符。\.
匹配点号。[^\s]{2,}
匹配两个或两个以上的非空格字符。$
匹配字符串的结尾。
这个正则表达式做了很多事情,包括验证 URI 主机,协议,路径等等。