Javascript 函数:if(/(文件| http)。*/.test(url)){
我想知道这种技术叫什么,它做什么。它似乎正在验证变量Javascript 函数:if(/(文件| http)。*/.test(url)){,javascript,regex,Javascript,Regex,我想知道这种技术叫什么,它做什么。它似乎正在验证变量url上的某个正则表达式。我正在自定义另一个人代码: var url = document.getElementById("editorURL").value; if(/(file|http).*/.test(url)) { } 也许有人有一篇文章的链接更深入地解释了这一点?本质上是:if(url匹配某个表达式){/*dosomething*} 这是一个正则表达式,用于检查url是否以文件或http开头,以确保输入的值是指向可在浏览器
url
上的某个正则表达式。我正在自定义另一个人代码:
var url = document.getElementById("editorURL").value;
if(/(file|http).*/.test(url)) {
}
也许有人有一篇文章的链接更深入地解释了这一点?本质上是:if(url匹配某个表达式){/*dosomething*}
这是一个正则表达式,用于检查
url
是否以文件或http
开头,以确保输入的值是指向可在浏览器中打开的资源的正确url
鉴于它无法检查后续的://
部分(例如,将匹配filexyz
或httphttphttp
),我认为它并不完美
有关test()
方法的更多信息,请访问
test()方法测试字符串中的匹配项
如果该方法找到匹配项,则返回true,否则返回false
我发现这是正则表达式最好的全面参考。他们的教程从简单到复杂,并且还包含了关于正则表达式引擎的各种风格的工作原理的信息
/(file|http).*/
这是一个正则表达式,它匹配以文件或http开头的任何字符串,因此在本例中,任何使用这些协议的URL
regex.test(string)
这是一个测试正则表达式是否与字符串匹配并返回布尔值的函数,因此它们一起构成了一个非常基本的url验证方法。它被称为“验证”(!),用于检查“editorURL”是否包含包含单词“file”或“http”的url。事实上,正则表达式没那么好,但总比没有强。首先,至少要检查文件或http是否位于URL的开头,而不是现在URL中的任何位置
/^(file|http).*/.test(url)
这也是唯一的客户端验证,旨在为用户提供有关验证的即时反馈。在服务器端,您至少应该有相同的规则,甚至可能更严格。服务器端验证用于在错误到达数据库/数据层之前捕获错误,但也用于防止破解(任何人都可以根据自己的意愿绕过客户端验证,因此永远不要信任来自客户端的数据)
编辑:我的上述模式意味着(一步一步):
/
这是
正则表达式模式
^
从头开始匹配
文本的开头(url的开头)
变量。原始模式中缺少此变量)
(
启动子模式(模式在
模式-主要用于
分组)
文件| http
逐字匹配文件或
http
)
子模式结束
任何字符
*
将最后一个字符重复零次或多次(在本例中为“任意字符”)
/
正则表达式模式的结尾
尝试检查url是以file://还是http://开头。不过,这是基于一个错误的假设。作者假设test()
方法仅在匹配整个字符串时返回true,但在匹配字符串的任何部分时返回true。例如,其计算结果为true:
/(file|http).*/.test(' a test file')
您可以去掉*
部分,对于任何给定的字符串,它仍然会得到相同的结果
既然写这篇文章的人弄错了,那么可能还有其他的东西也错了。我建议在剖析了它们的功能之后,重写它们。与对有缺陷的代码进行微小的更改相比,它不会那么令人沮丧。祝你好运 我确实理解if语句,但问题涉及表达式和test()函数。无论如何,谢谢。因此,我们提供了解释regexp对象、其语法和方法的链接。感谢您提供关于进一步改进它的答案和建议:d感谢您对regexp的全面介绍。