반응형
Javascript 문자열은 정규식으로 대체하여 잘못된 문자를 제거합니다.
자바 스크립트에서 잘못된 문자 집합을 제거하는 기능이 필요합니다. |&;$%@"<>()+,
이것은 정규식으로 해결해야 할 고전적인 문제입니다. 즉, 이제 두 가지 문제가 있습니다.
이것이 내가 지금까지 얻은 것입니다.
var cleanString = dirtyString.replace(/\|&;\$%@"<>\(\)\+,/g, "");
백 슬래시로 정규식 특수 문자를 이스케이프하고 있지만 무슨 일이 일어나고 있는지 이해하는 데 어려움을 겪고 있습니다.
단일 리터럴을 분리하여 시도하면 대부분이 작동 하는 것처럼 보이지만 순서에 따라 동일한 정규식에 함께 넣으면 교체가 중단됩니다.
즉 이것은 작동하지 않습니다-> dirtyString.replace(/\|<>/g, ""):
감사합니다!
필요한 것은 문자 클래스 입니다. 여기서는 ]
, \
및 -
문자 에 대해서만 걱정 ^
하면됩니다 ( 문자 클래스 " [
" 의 시작 바로 뒤에 배치하는 경우 ).
구문 : [
문자]
는 문자 가있는 목록입니다.
예:
var cleanString = dirtyString.replace(/[|&;$%@"<>()+,]/g, "");
나는 당신이 의도 한 것이 될 수있는 역 관점에서 그것을 보는 경향이 있습니다.
허용 할 문자는 무엇입니까?
이것은 당신이 예상하지 못했던 것들을 날려 버리는 문자열로 만들어지는 많은 문자 들이 있을 수 있기 때문 입니다.
예를 들어 다음은 하이픈으로 대체하는 유효하지 않은 문자 그룹을 제거하는 문자와 숫자 만 허용합니다.
"This¢£«±Ÿ÷could&*()\/<>be!@#$%^bad".replace(/([^a-z0-9]+)/gi, '-');
//Result: "This-could-be-bad"
모두 문자 클래스로 래핑해야합니다. 현재 버전은이 문자 시퀀스를 빈 문자열로 바꾸는 것을 의미합니다. 대괄호에 싸여 때 교체 의미 있는 빈 문자열이 문자를.
var cleanString = dirtyString.replace(/[\|&;\$%@"<>\(\)\+,]/g, "");
괄호 안에 넣으십시오 []
.
var cleanString = dirtyString.replace(/[\|&;\$%@"<>\(\)\+,]/g, "");
반응형
'programing' 카테고리의 다른 글
자바 스크립트 : 객체 리터럴 값 반복 (0) | 2021.01.09 |
---|---|
Composer가 300 초 후에 설치 시간이 초과되는 이유는 무엇입니까? (0) | 2021.01.09 |
정수를 로마 숫자로 변환 (0) | 2021.01.09 |
Rails 콘솔에서 마이그레이션 실행 (0) | 2021.01.09 |
호환되는 iOS 버전에서 사용할 수있는 프로비저닝 된 iOS 장치가 없습니다. (0) | 2021.01.09 |