【发布时间】:2018-04-30 17:57:00
【问题描述】:
我无法让那些 RegEx 模式与 JavaScript 一起工作(在 PHP 中它们工作):
/^[^\/home\/]/
/^\/home\/$/
/^\/home\/.+\/.+$/
我想允许这样的输入:
/home/username
我不想要的是:
/home/
/username
/home/username/info
这是我的代码:
var regex1 = /^[^\/home\/]/;
var regex2 = /^\/home\/$/;
var regex3 = /^\/home\/.+\/.+$/;
if( regex1.test(homedir)
|| regex2.test(homedir)
|| regex3.test(homedir) ) { ... }
我在控制台中没有错误。
有人可以向我解释为什么它不能在 JavaScript 中工作吗?
编辑
我把它改成了/^\/home\/[A-Za-z0-9]+$/,现在它可以工作了:
var rgx = /^\/home\/[A-Za-z0-9]+$/;
if( !rgx.test(homedir) ) { ... }
【问题讨论】:
-
请张贴您的输入字符串和预期输出
-
“为什么它在 JavaScript 中不起作用”你能说出什么不起作用吗?控制台中有一些错误?您是否尝试使用此正则表达式替换或查找某些内容?请说得更具体
-
非常感谢@sln - 是的,我同意我可能不得不重写它。我只是想了解它在 PHP 中的不同之处。
-
我将它重写为
/^\/home\/[A-Za-z0-9]+$/,它工作正常,因为我现在检查字符串是否匹配,而不是检查它是否不匹配,就像@sln 建议的那样。谢谢大家的帮助:)
标签: javascript regex