如何检查给定字符串是否为有效的URL地址?
我对正则表达式的了解是基本的,不允许我从我在网上看到的数百个正则表达式中进行选择.
哪些字符使网址无效?
这些有效的网址是?
example.com/file[/].htmlhttp://example.com/file[/].html首先抱歉第10,000次RegEx问题,
我意识到还有其他与域相关的问题,但正则表达式要么不正常,要么太复杂,要么对于具有子域,协议和文件路径的URL.
我更简单,我需要验证一个域名:
google.com
stackoverflow.com
所以这是一个最新形式的域名 - 甚至不是像www这样的子域名.
编辑:TLD显然是2-6个字符
没有.4修订版: TLD实际上应该被标记为"子域名",因为它应该包含像.co.uk这样的东西 - 我想可能的唯一验证(除了检查列表之外)将是'在第一个点之后应该有一个或者规则#1下的更多角色
非常感谢,相信我,我确实尝试过!
我想验证一个URL并显示消息.以下是我的代码:
$("#pageUrl").keydown(function(){
$(".status").show();
var url = $("#pageUrl").val();
if(isValidURL(url)){
$.ajax({
type: "POST",
url: "demo.php",
data: "pageUrl="+ url,
success: function(msg){
if(msg == 1 ){
$(".status").html('<img src="images/success.gif"/><span><strong>SiteID:</strong>12345678901234456</span>');
}else{
$(".status").html('<img src="images/failure.gif"/>');
}
}
});
}else{
$(".status").html('<img src="images/failure.gif"/>');
}
});
function isValidURL(url){
var RegExp = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/;
if(RegExp.test(url)){
return true;
}else{
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,即使输入正确的URL直到它与正则表达式匹配,它也会显示错误消息,即使URL类似,它也会返回true "http://wwww".
我感谢你的建议.
我正在使用PHP中的电子邮件验证正则表达式,我需要知道TLD可能存在多长时间并且仍然有效.我做了一些搜索,但找不到有关该主题的更多信息.那么TLD可能需要多长时间?
我可以使用什么来调用操作系统在用户默认的任何浏览器中打开URL?不担心跨操作系统兼容性; 如果它在linux中工作对我来说足够了!
如何设置我的正则表达式进行测试,以查看URL是否包含在javascript中的文本块中.我无法弄清楚用来完成这个的模式
var urlpattern = new RegExp( "(http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?"
var txtfield = $('#msg').val() /*this is a textarea*/
if ( urlpattern.test(txtfield) ){
//do something about it
}
Run Code Online (Sandbox Code Playgroud)
编辑:
所以我现在使用的模式在正则表达式测试器中用于我需要它做什么,但是chrome会抛出一个错误
"Invalid regular expression: /(http|ftp|https)://[w-_]+(.[w-_]+)+([w-.,@?^=%&:/~+#]*[w-@?^=%&/~+#])?/: Range out of order in character class"
Run Code Online (Sandbox Code Playgroud)
对于以下代码:
var urlexp = new RegExp( '(http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?' );
Run Code Online (Sandbox Code Playgroud) 顶级域名最后可以包含一个数字吗?Idk没有任何关于DNS规则等,但当我尝试使用PHP的filter_var()函数与FILTER_VALIDATE_EMAIL,test@null.com1它返回true.
长话短说,我有一个在 Wix.com 编辑器下制作的网站,几个月前编码成为可能。我已经设置了一个自定义评论框,因此用户可以发布他们的评论,并阅读其他人的评论。
现在的情况是,“评论输入”采用纯文本,每当发布链接时,它都会显示为纯文本,没有颜色,没有可点击性。
我想要一个“读取”评论列表的代码,并转换以“https”或“http”或“www”开头的每个文本......橙色且可点击(在新标签中打开)
请问有什么解决办法吗?
谢谢 !
我尝试了很多事情,例如:
$w('#text95').html =
(/((http:|https:)[^\s]+[\w])/g, '<a href="$1" target="_blank">$1</a>').replace;
Run Code Online (Sandbox Code Playgroud)
text95 = 显示的评论(它是一个重复的文本,有多少评论)
到目前为止我有这个:
chrome.tabs.getSelected(null, function(tab)
{
var title = tab.title;
var btn = '<a href="' + tab.url + '" onclick="save(\'' + title + '\');"> ' + title + '</a>';
if(tab.url.match('/http:\/\/www.example.com\/version.php/i'))
{
document.getElementById('link').innerHTML = '<p>' + btn + '</p>';
}
});
Run Code Online (Sandbox Code Playgroud)
基本上它应该与以下域匹配:
http://www.example.com/version.php?*
Run Code Online (Sandbox Code Playgroud)
任何匹配的内容,即使它包含诸如 version.php?ver=1 之类的内容
当我使用我上面的代码时,它没有显示任何内容,但是当我删除 if 语句时,它可以显示在其他页面上,而它不应该只显示在匹配的 URL 上。
编辑:
if(tab.url.match(/http:\/\/www.example.com\/version.php/i))
{
document.getElementById('link').innerHTML = '<p>' + btn + '</p>';
}
Run Code Online (Sandbox Code Playgroud)
甚至不以某种方式工作...
我今天看过这个图片网址,我想知道最后是什么":small"。这与Twitter使用的CMS有关吗?还是可以将其与任何图片网址一起使用?
https://pbs.twimg.com/media/B9GOfXNIIAAxb0H.jpg:small
Run Code Online (Sandbox Code Playgroud)
谢谢
我在 Typescript 中有一个使用 Vuetify 测试 Vue 中文本字段规则的函数。
像https://www.cnn.com 、 www.test.xxx这样的东西验证失败。我似乎无法理解为什么......
Vuetify 文本字段(Vuetify v.2.2.26):
<v-text-field label="Web site" dense :rules="webSiteRules" :readonly="!editing" v-model="profile.WebSite" />
Run Code Online (Sandbox Code Playgroud)
代码(在 .vue 文件中导入 - 使用单个文件组件):
export function websiteRules(): ((v: string) => boolean | string)[] {
const regexp = /^(http:\/\/www\.|https:\/\/www\.|http:\/\/|https:\/\/)?[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(:[0-9]{1,5})?(\/.*)?$/gim;
return [
(v: string): boolean | string => !!v || 'Web site required',
(v: string): boolean | string =>
regexp.test(v) || 'Wrong format. use e.g. http(s)://www.cnn.com'
];
}
Run Code Online (Sandbox Code Playgroud) regex ×6
url ×6
javascript ×4
validation ×4
dns ×2
jquery ×2
php ×2
domain-name ×1
hyperlink ×1
python ×1
rfc3986 ×1
standards ×1
subdomain ×1
system-calls ×1
tld ×1
typescript ×1
velo ×1
vuetify.js ×1