我尝试使用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
加上
我想在正面和背面使用正则表达式。
答案 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中,你不必逃避它。
我看到你的正则表达式缺少一个空格,我也加了它。
请注意,在字符类中,许多特殊字符被视为文字,并且不必进行转义。我从那些不需要转义的符号中删除了转义符号。