Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 允许/&引用;正则表达式中的正斜杠_Javascript_Regex - Fatal编程技术网

Javascript 允许/&引用;正则表达式中的正斜杠

Javascript 允许/&引用;正则表达式中的正斜杠,javascript,regex,Javascript,Regex,我知道u002f是Unicode中的正斜杠。我尝试将其添加到模式以及“/”中,但还无法将其记录为true。添加正斜杠很容易,只需将其转义即可。不需要使用任何字符引用或实体 var patt = /^(?=.*[a-zA-Z0-9.!@#&*\-\u0080-\u052F])[a-zA-Z0-9\s.!@#&*',\-\u0080-\u052F]*$/; console.log(patt.test("\u002f")); var patt=/^(?=.[a-zA-Z0-9.!\

我知道u002f是Unicode中的正斜杠。我尝试将其添加到模式以及“/”中,但还无法将其记录为true。

添加正斜杠很容易,只需将其转义即可。不需要使用任何字符引用或实体

var patt = /^(?=.*[a-zA-Z0-9.!@#&*\-\u0080-\u052F])[a-zA-Z0-9\s.!@#&*',\-\u0080-\u052F]*$/;
console.log(patt.test("\u002f"));
var patt=/^(?=.[a-zA-Z0-9.!\-\u0080-\u052F])[\/a-zA-Z0-9\s.!\-\u0080-\u052F]*$;

警报(模式测试(“/测试”)
您可以使用
\/
/
字符进行转义


使用unicode实际上会产生与使用字符本身完全相同的结果,因此不会解决您的问题。

如果
\002f
是正斜杠,为什么您的模式包含
\u052f
?u052f是我们需要包含的另一个字符。仅供参考:在字符类中,在一些JS实现中,您甚至可以使用
/
unescaped,例如
/[\d/]+/g
将匹配
12/24
。但是,这不是一个好主意,因为它不可移植(在Ruby中,它会导致
未终止的regexp
异常,在PHP中,如果使用
/
作为分隔符,您可能会得到
未知修饰符
错误)。在ReEX实现中,应该考虑使用<代码> /< /COD> unLunt,其中没有使用正则表达式分隔符(C,python,java,go),以及构造函数注释(JavaScript,露比)。
var patt = /^(?=.*[a-zA-Z0-9.!@#&*\-\u0080-\u052F])[\/a-zA-Z0-9\s.!@#&*',\-\u0080-\u052F]*$/;
                                                    ^