验证特定网址
Validate specific url
本文关键字:验证 更新时间:2023-09-26
我正在为我的朋友制作一个表格,要求所有访问者填写一个特定的域名。我想要的是,他们必须编写一个以 https://specificname.com
开头的链接,然后以 ID 继续。 示例 https://specificname.com/id/WordOrNumber
.我需要像正则表达式或验证器这样的东西来验证他们在表单中填写的链接。
这是我现在使用的字符串。
case 'url':
if ('http://' === $value) $value = '';
if ($value && !preg_match('/^(https?|s?ftp):'/'/(((([a-z]|'d|-|'.|_|~|['x{00A0}-'x{D7FF}'x{F900}-'x{FDCF}'x{FDF0}-'x{FFEF}])|(%['da-f]{2})|[!'$&'''(')'*'+,;=]|:)*@)?((('d|[1-9]'d|1'd'd|2[0-4]'d|25[0-5])'.('d|[1-9]'d|1'd'd|2[0-4]'d|25[0-5])'.('d|[1-9]'d|1'd'd|2[0-4]'d|25[0-5])'.('d|[1-9]'d|1'd'd|2[0-4]'d|25[0-5]))|((([a-z]|'d|['x{00A0}-'x{D7FF}'x{F900}-'x{FDCF}'x{FDF0}-'x{FFEF}])|(([a-z]|'d|['x{00A0}-'x{D7FF}'x{F900}-'x{FDCF}'x{FDF0}-'x{FFEF}])([a-z]|'d|-|'.|_|~|['x{00A0}-'x{D7FF}'x{F900}-'x{FDCF}'x{FDF0}-'x{FFEF}])*([a-z]|'d|['x{00A0}-'x{D7FF}'x{F900}-'x{FDCF}'x{FDF0}-'x{FFEF}])))'.)+(([a-z]|['x{00A0}-'x{D7FF}'x{F900}-'x{FDCF}'x{FDF0}-'x{FFEF}])|(([a-z]|['x{00A0}-'x{D7FF}'x{F900}-'x{FDCF}'x{FDF0}-'x{FFEF}])([a-z]|'d|-|'.|_|~|['x{00A0}-'x{D7FF}'x{F900}-'x{FDCF}'x{FDF0}-'x{FFEF}])*([a-z]|['x{00A0}-'x{D7FF}'x{F900}-'x{FDCF}'x{FDF0}-'x{FFEF}])))'.?)(:'d*)?)('/((([a-z]|'d|-|'.|_|~|['x{00A0}-'x{D7FF}'x{F900}-'x{FDCF}'x{FDF0}-'x{FFEF}])|(%['da-f]{2})|[!'$&'''(')'*'+,;=]|:|@)+('/(([a-z]|'d|-|'.|_|~|['x{00A0}-'x{D7FF}'x{F900}-'x{FDCF}'x{FDF0}-'x{FFEF}])|(%['da-f]{2})|[!'$&'''(')'*'+,;=]|:|@)*)*)?)?('?((([a-z]|'d|-|'.|_|~|['x{00A0}-'x{D7FF}'x{F900}-'x{FDCF}'x{FDF0}-'x{FFEF}])|(%['da-f]{2})|[!'$&'''(')'*'+,;=]|:|@)|['x{E000}-'x{F8FF}]|'/|'?)*)?(#((([a-z]|'d|-|'.|_|~|['x{00A0}-'x{D7FF}'x{F900}-'x{FDCF}'x{FDF0}-'x{FFEF}])|(%['da-f]{2})|[!'$&'''(')'*'+,;=]|:|@)|'/|'?)*)?$/iu', $value))
return frmd_error('Please enter a valid URL.', $elm['name']);
break;
此代码运行良好,但它将接受访问者填写的所有类型的域名。请只回复正则表达式或验证器,因为我不知道要编辑什么.
我不擅长编码。
如果要确保输入的 URL 与特定前缀匹配,则可以跳过正则表达式,只测试子字符串,例如:
var validPrefix = 'https://example.com';
if (enteredUrl.substring(0, validPrefix.length) != validPrefix){
alert('Invalid URL.');
}
如果你想允许URL上的微小变化,例如有/没有WWW或http和https,那么你可以使用一个简单的正则表达式,将它们定义为可选部分。
var urlRegex = /https?:'/'/(www.)?example.com/;
if (!urlRegex.test(enteredUrl)){
alert('Invalid URL.');
}
如果您需要验证整个 URL 格式而不仅仅是前缀,则需要根据您需要匹配的任何格式条件来扩展正则表达式。 一些正则表达式教程应该可以帮助您确定如何匹配所需的内容。 例如,要在域后添加 ID 号,您可以执行以下操作:
var urlRegex = /https?:'/'/(www.)?example.com'/'d+/;
if (!urlRegex.test(enteredUrl)){
alert('Invalid URL.');
}
如果您前缀并且输入 url 是
var validPrefix = "validDomain.com";
var inputURL = "www.validDomain.com/context1";
那么你需要做的就是
if ( inputURL.indexOf( validPrefix ) == -1 )
{
alert( "No, input URL doesn't contain valid domain prefix" );
}
else
{
alert( "Yes, input URL contains valid domain prefix" );
}
相关文章:
- 正在验证8个真/假复选框或复选框中的2个
- 借助asp.net验证或java脚本对多个文本进行验证
- jQuery自定义验证比较多个输入的序列
- 使用html中的外部javascript进行数据验证
- 如何使用jquery Validation验证Formspread
- jquery中的文本框验证
- 在验证和发送邮件后更改联系人表单的 html
- 代码不会验证
- JS验证ajax返回的html中的表单数据
- 同步调用,直到用户通过angular验证为访问者
- 带有加号的电话号码验证(可选)
- 解析javascript表单验证器
- 两位数的月份日期验证
- 使用angularjs验证文本框中的电子邮件
- 验证Javascript中的Textarea
- 使用regex的jquery keydown绑定不会验证撇号和句点
- Jquery表单验证插件-如果选中复选框,如何在提交时执行某些操作
- 正在删除node.js中已验证的网站
- 自定义表单验证和提交
- 带有验证和隐藏字段值的提交按钮