2014-01-08 3 views
0

매주 (전체 중지) 이후에 공백을 추가하려고합니다.정규식 자바 스크립트 찾기/바꾸기

text.replace(/([^.]*?[a-zA-Z][^.0-9]*?)\.([\S][^.]*?)|([^.]*?[0-9])\.([^\s0-9][^.]*?)/g, "$1. $2") 

샘플 문자열 :

가 사과 a는 3.0 away.apple 의사가 day.keeps 그러나 소수 지점 또는 나는 다음과 같은 정규식을 사용한 자바 스크립트 abbreviation.Using입니다하지 않을 경우 단순히 놀라운. 아이폰 5.is 나쁘지 않습니다.

출력 :

사과 하루. 의사를 멀리합니다. 사과 3.0은 단순히 훌륭합니다. I. 나쁘지 않습니다.

이상한 이유로 전화가 사라집니다. regexpal.com을 사용했고 예상대로 부분을 찾을 수 있습니다. 대체품에 문제가 있습니다.

또한 훌륭한 디버거 찾기 및 바꾸기에 대한 제안을 주시면 감사하겠습니다.

+0

약어의 의미는 무엇입니까? 약어 라니? – elclanrs

+1

문장의 끝과 구문 코드 (foo.bar) 또는 전자 메일 주소 ([email protected]) 등의 차이점을 어떻게 알 수 있습니까? 정규식은 당신을 도와주지 않을 것입니다. – Robusto

+0

테스트에 URL을 추가하면 도움이 될 수 있습니다. – Rob

답변

2

마침표를 이스케이프 처리하지 않았으므로 일부 문자가 제거됩니다. 또한 $3$4을 떠나야합니다. 완전히 서로 번갈아 가며 다음과 같이 작동해야합니다 (예를 들어 작동 할 것입니다).

replace(/([^.]?[a-zA-Z][^.0-9]?)\.([\S][^.]?)|([^.]?[0-9])\.([^\s0-9][^.]*?)/g, 
    "$1$3. $2$4")