正则表达式特殊字符by ascii

时间:2019-04-05 07:43:42

标签: javascript regex

我必须使用正则表达式进行密码验证,其中包括至少一个特殊字符。

https://en.wikipedia.org/wiki/ASCII

export const passwordValidation = password => {
  const regPassword = /^(?=.*?[#?!@$%^&*-]).{8,}$/

  return regPassword.test(password)
}

我尝试过这种方法,但我认为这不是好方法。 除了字母数字,还有其他方法可以通过ASCII码检查所有特殊字符吗?

1 个答案:

答案 0 :(得分:2)

首先,您需要定义什么是“特殊”字符。您的意思不是A-Z(英文字母)范围内的吗? A-Z和0-9?还有吗然后,您可以使用列出您想要的字符类的字符类,这是您已经完成的事情,或者使用否定的类说您想要不是的类:

String filename=request.getParameter("filename");
String filepath=request.getParameter("filepath");
byte[] bytes = FileUtils.readFileToByteArray(new File(filepath));
if (filename.toLowerCase().endsWith(".html")) { 
response.setContentType("text/html; charset=UTF-8"); 

}else if (filename.toLowerCase().endsWith(".docx")) { 
response.setContentType("application/msword;charset=UTF-8"); 
}else if (filename.toLowerCase().endsWith(".xlsx")) { 
response.setContentType("application/vnd.ms-excel;charset=UTF-8"); 
}else if (filename.toLowerCase().endsWith(".png")) { 
response.setContentType("image/png; charset=UTF-8"); 
} else if (filename.toLowerCase().endsWith(".jpg")) { 
response.setContentType("image/jpeg; charset=UTF-8"); 
} else if (filename.toLowerCase().endsWith(".bmp")) { 
response.setContentType("image/bmp; charset=UTF-8"); 
} else if (filename.toLowerCase().endsWith(".pdf")) { 
response.setContentType("application/pdf; charset=UTF-8"); 
} else if (filename.toLowerCase().endsWith(".js")) { 
response.setContentType("text/javascript; charset=UTF-8"); 
} else if (filename.toLowerCase().endsWith(".css")) { 
response.setContentType("text/css; charset=UTF-8"); 
} else if (filename.toLowerCase().endsWith(".svg")) { 
response.setContentType("image/svg+xml; charset=UTF-8"); 
} else { 
response.setContentType("text/plain; charset=UTF-8"); 
} 

response.getOutputStream().write(bytes);

response.getOutputStream().flush();
response.getOutputStream().close();

System.out.println("File name fetch" + filename + "file path fetch" + filepath);