자바 스크립트 함수를 작성하여 사용자 입력을 삭제하고 원치 않는 위험한 문자를 제거하고 싶습니다.자바 스크립트로 입력을 살균하는 더 좋은 방법이 있습니까?
그것만 허용해야 다음 문자 :
- Alfanumeric 문자 (케이스 insentitive) : A-Z] [0-9].
- "word1 word2"와 같은 내부 공백.
- 스페인어 문자 (insentitive) : [ééíúúñü].
- 밑줄과 하이픈 [_-].
- 점과 쉼표 [.,].
- 마지막으로 문자열을 trim()으로 트림해야합니다.
function sanitizeString(str){ str = str.replace(/[^a-z0-9áéíóúñü_-\s\.,]/gim,""); return str.trim(); }
하지만 그랬다면 :
내 첫 번째 시도였다
sanitizeString("word1\nword2")
는 반환
"word1
word2"
그래서 내가 명시 적으로 제거하는 기능을 재 작성했다 \ t \ n \ f \ r \ v \ 0 :
function sanitizeString(str){
str = str.replace(/([^a-z0-9áéíóúñü_-\s\.,]|[\t\n\f\r\v\0])/gim,"");
return str.trim();
}
내가 알고 싶습니다 :
- 자바 스크립트로 입력을 살균 수있는 더 나은 방법이 있나요?
- 왜 \ n과 \ t가 첫 번째 버전의 RegExp에서 일치하지 않습니까?
시간을 절약하고 서버에서 처리 할 필요가 없습니다. Javascript 필터링은 바이 패스하기가 너무 쉽습니다. – andrew
사실 저는 백엔드에서 XPages를 사용하고 있기 때문에 실제로 SSJS가있는 서버에서이 작업을 수행하고 있습니다. Node.js를 사용하고 있다면 똑같이 말할 수 있습니다. :) –
'\ s'을 사용하여 새 줄, 탭 등을 허용하고 있습니다. 공백 만 허용하려는 경우 대신 정규식에서 공백을 사용하십시오. – RobG