2011-01-23 5 views
2

나는 함께 작업하는 웹 응용 프로그램에서 여분의 문자 \n자를 삭제하려고 시도했습니다. 나는이 문제가 발생하기 전에 누군가가이 문제를 일으킬 수 있다는 것을 알고 있기를 바랬다. 모든 JS 및 PHP 파일은 BOM없이 UTF-8로 인코딩됩니다. JS에서PHP 또는 JS로 줄 바꿈을 제거하는 방법

같은

그리고 그래 난 해봤 일 : PHP에서

text.replace(/\n/g,"") 

:

preg_replace("[\n]","",$result); 
str_replace("\n","",$result); 

와 불을 지르고에서 내가 시도

text.replace(/\n/g,"") 

같은 문자열을 사용하는 콘솔 I 서버에서 작동하지만 JS 파일에서는 작동하지 않습니다.

나는 필사적이고 까다 롭고 이것은 나를 죽이고있다. 모든 입력을 부탁드립니다.

편집 :

도움이된다면, 나는 위의 대체 기능을 사용하는 방법을 알고있다. 어떤 이유로 든 \n을 제외한 다른 문자열이나 패턴을 바꿀 수 있습니다.

대답 설명 :

어떤 사람들은 어떻게하고 그냥 작동하기 때문에 어떤 작품 사용합니다. 당신이 나와 같고 기록이 있다면 나는 항상 어떻게 작동 하는지를 알고 싶습니다!

내 경우 :

왜 작동합니까? str_replace('\n', '', $result)

그리고 이것은 무엇입니까? str_replace("\n", '', $result)

동일하게 보입니까? 글자 값이 \n 인 문자열을 큰 따옴표로 묶었을 때 "\n"은 문자 값이 아닌 문자열로 간주됩니다. 반면에 작은 따옴표로 묶으면 \n 문자열로 간주됩니다. 적어도 그것이 내가 3 시간 내 두통으로 결론을 내린 것입니다.

결론적으로 설치 관련 문제이거나 잘못된 것이 있으면 알려 주시거나 수정하십시오.

+0

실제로 text.replace()의 결과를 저장하고 있습니까? 그것은 기존 변수의 내용을 대체하지 않으며 새로운 변수를 만듭니다. –

+2

"[읽어주십시오]"? 그게 효과가 있다고 생각하지 않아. – JakeParis

+0

패턴 수정을 시도 했습니까 (즉, 패턴 문자열은 UTF-8로 처리됩니다)? http://php.net/manual/en/reference.pcre.pattern.modifiers.php – Marcin

답변

4

PHP에서, str_replace(array('\r','\n'), '', $string)를 사용합니다.

코드에 \r이있는 것 같습니다 (캐리지 리턴, 줄 바꿈으로도 표시됨).

str_replace(array('\r','\n'), '', $string) 

나를 위해 작동하지 않았다 사용 이상하게

+0

(테스트 및 작동) – cbrandolino

+0

'답변 설명'편집을 읽고 이것이 작동해야하는 이유와 이유가 없는지 확인하십시오. – Pablo

+0

@Pablo my , 당신 말이 맞아요. (/ 나는 수치스럽게 숨 깁니다.) – cbrandolino

2

자바 스크립트에서 .replace() 메서드는 문자열을 수정하지 않습니다. 새로운 수정 된 문자열을 반환하므로 결과를 참조해야합니다.

text = text.replace(/\n/g,"") 
+0

고마워,하지만 그렇지 않다. – Pablo

+0

도움이된다면, 나는 replace 함수를 사용하는 법을 안다. 다른 패턴이나 문자열을 대체 할 수 있지만 '\ n' – Pablo

0

당신이 변경된 문자열을 반환 시도는 PHP 함수는 모두, 그들은 그들의 인수를 변경하지 않습니다

$result = preg_replace("[\n]","",$result); 

$result = str_replace("\n","",$result); 
+0

고마워요,하지만이 경우가 아닙니다. – Pablo

+1

try : $ result = preg_replace ("# \ n | \ r | \ r \ n #", ', $ result); –

+0

@Dragon @ Answer 대답 설명 편집 – Pablo

0

. 나는 왜 그 중 하나를 실제로 해결할 수 없습니다.

필자는 워드 프레스 사용자 정의 메타 필드에서 출력물을 가져와야하며, 나중에 자바 스크립트 배열에 HTML 형식으로 배치하여 나중에 내 사이트의 Google지도 인스턴스에서 정보 창으로 사용할 수 있도록했습니다.

나는 다음과 같은 한 경우 :

$stockist_address = $stockist_post_custom['stockist_address'][0]; 
$stockist_address = apply_filters('the_content', $stockist_address); 
$stockist_sites_html .= str_replace(array('\r','\n'), '', $stockist_address); 

이 한 줄에 HTML을 나에게 문자열을주지 않았다. 따라서 Google지도에 오류가 발생했습니다. 내가 대신 할 필요가 무엇

:이 나를 위해 마법처럼 일했다

$stockist_address = $stockist_post_custom['stockist_address'][0]; 
$stockist_address = apply_filters('the_content', $stockist_address); 
$stockist_sites_html .= trim(preg_replace('/\s+/', ' ', $stockist_address)); 

.

정규 표현식 탭, 줄 바꿈 및 캐리지 리턴에서 \ s 사용을 믿습니다.

관련 문제