2013-03-17 2 views
0

인코딩을 사용하여 데이터베이스에 쿼리 이전에 textarea 또는 input을 통해 삽입 한 데이터를 검색하고 있습니다. 나는 JSON 객체 내 DB의 응답을 얻을 때 text 필드는 다음과 같습니다 : 나는 에서이 문자열을 보여 주어야캐리지 리턴

string_convert = function(string){ 
    return string.replace("&#8629",'<br>') 
       .replace('&crarr','<br>') 
       .replace('/[\n\r]/g','<br>'); 
} 

을 :이 function로 교체하려고

obj : { 
      text : [some_text] ↵ [some_text] 
     } 

HTML,하지만 작동하지 않는 것 같습니다. 나는 사용하고있다 UTF-8

어떤 충고? 그것은 가능성이 수

string_convert = function(aString){ 
    return aString.replace("&#8629;",'<br>').replace('&crarr;','<br>'); 
} 

이 필요한 문제가 해결되지 않지만 :

+2

"↵"란 무엇입니까? 실제 JSON을 보여주십시오. – loganfsmyth

+2

'string.replace ('↵', '
')'시도 해 봤나? – Yogu

+0

↵ 실제로 표시되는 문자입니다. – steo

답변

0

당신은 당신의 코드에서 종료 세미콜론 ;가 누락되었습니다. 에서

1

당신이 가진 문제는 당신이 따옴표에 정규식을 동봉 한 것입니다. 이것은 잘못되었습니다.

.replace('/[\n\r]/g','<br>'); 
     ^  ^
     remove these two quotes 

정규식이 슬래시로 구분되어 있기 때문에 따옴표가 필요하지 않습니다.

따옴표를 붙이면 실제로 정규식이 아닌 고정 된 문자열을 바꾸겠다고 말한 것입니다. 고정 문자열은 표현식처럼 보일 수 있지만 따옴표는 일반 문자열로만 표시됩니다.

따옴표를 제거하면 식으로 표시되며 정상적으로 작동합니다.

또 다른 한 가지 - 정규식 작업을 완벽하게하기 위해 약간 수정하는 것이 좋습니다. 그대로 서면 \n\r 문자를 모두 <br>으로 바꿉니다. 그러나 경우에 따라 \r\n 쌍으로 모일 수 있습니다. 이것은 한 줄 바꿈이어야하지만 식은 두 개의 <br>으로 바뀝니다.

이 대신 같은 표현을 사용할 수 있습니다

/\r\n|\n|\r/g 

희망을.