programing

Javascript 문자열은 정규식으로 대체하여 잘못된 문자를 제거합니다.

nasanasas 2021. 1. 9. 10:09
반응형

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, "");

참조 URL : https://stackoverflow.com/questions/3780696/javascript-string-replace-with-regex-to-strip-off-illegal-characters

반응형