用于PHP和Javascript

时间:2015-09-22 18:24:08

标签: javascript php jquery regex

我尝试使用PHP验证密码,我想在Javascript中使用相同的Regex,在我的PHP中,当我尝试使用以下正则表达式时,我遇到错误。{ {1}}

(Warning: filter_var(): Compilation failed: range out of order in character class at offset 14)

我希望密码包含/^[a-zA-Z0-9_-\]\[\?\/<~#`!@\$%\^&\*\(\)\+=\}\|:\";\',>\{]{4,20}$/ if (!filter_var($password,FILTER_VALIDATE_REGEXP, array("options"=>array("regexp"=>"/^[a-zA-Z0-9_-\]\[\?\/<~#`!@\$%\^&\*\(\)\+=\}\|:\";\',>\{]{4,20}$/")))){ $errors .= "Please enter a valid password."; } 0-9以及这些字符a-zA-Z加上

我想在正面和背面使用正则表达式。

2 个答案:

答案 0 :(得分:0)

@echo off

set /p host=

for /f "delims==< tokens=4" %%b in ('ping %host% -n 1 ^| findstr "Reply"') do (set ttl=%%b)

if '%ttl%' GTR "64" (echo operating system: Windows - ttl=%ttl%) else (echo operating system:   linux - ttl=%ttl%)

pause

你的第一个字符集中有一个未转义的连字符,你需要转义逗号。

编辑:转义其他一些元字符。

答案 1 :(得分:0)

您可以使用

^[a-zA-Z0-9_\]\[?\/<~#`!@$%^&*()+=}|:\";\',>{ -]{4,20}$
                                             ^^

注意&#34; smart&#34;连字符在字符类末尾的位置,在JS和PHP中,你不必逃避它。

我看到你的正则表达式缺少一个空格,我也加了它。

请注意,在字符类中,许多特殊字符被视为文字,并且不必进行转义。我从那些不需要转义的符号中删除了转义符号。