2012-01-09 2 views
-1

타원, 인용 부호, 긴 하이픈, 아포스트라프, 위 첨자 및 아래 첨자와 같은 많은 문자가 웹 페이지를 제출할 때 모두 상자 및 이상한 텍스트 문자로 잘못 인코딩됩니다. 이 문자를 검사 할 정규 표현식을 만들 수 있습니다.이스케이프 처리되지 않은 문자를 검사하는 정규 표현식

우리는 인용 부호, 타원 또는 글 머리 기호와 같은 것을 제출할 때 웹 페이지에 큰 사각형으로 표시되거나 이스케이프 아웃되고 $ &과 같은 제어 문자의 문자열이됩니다. & $. 그래서 사각형, 제어 순서 및 기타 이상한 유니 코드 문자 유형을 찾거나 확인하고 싶습니다.

그래서 우리는이 모든 것을 검사하는 정규식이 필요합니다. 아니면 우리가 따라야 할 다른 방법이나 접근법이 있습니까?

+0

정규식을 사용하여 텍스트의 유효성을 검사하는 경우 모든 문자의 유효성을 검사하지 마십시오. 허용되는 문자를 필터링하고 다른 모든 것을 허용하지 않습니다. [a-zA-Z0-9_-]와 허용하려는 다른 문자 이외에는 아무 것도 없습니다. – Barka

+0

'우리는이 문자들을 검사 할 정규 표현식을 만들어야합니다. ' @Veronica가 말했듯이, 아마도 인코딩 문제 일 것입니다. Regex를 사용하기 전에 그런 식으로 수정하십시오. –

답변

1

제곱의 모양은 읽는 데 사용하는 인코딩에 따라 다릅니다. ASCII 인코딩을 사용하는 경우 문자 대신 사각형이 표시됩니다.

0

영숫자 및 숫자를 제한하고 밑줄과 대시처럼 허용하려면 다른 문자를 바꾸거나 제거 할 수 있습니다. , _ -

@"[^a-zA-Z0-9_-]" 

는 Z로 Z, A를하지 않는 모든 문자, 0 ~ 9와 일치하는 정규식입니다.

예를 들어 다른 모든 문자를 밑줄로 바꿀 수는 없습니다.

string newStringParsed = Regex.Replace(stringToParse, @"[^a-zA-Z0-9_-]", "_"); 
관련 문제