2010-12-27 4 views
4

그래,이 문자열 프로토 타입을 사용할 수는 있지만, 정확히 무엇을하는지 이해하지 못합니다.Javascript는 빈 문자열로 특수 문자를 대체합니다.

String.prototype.php_htmlspecialchars = function() 
{ 
return this.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;'); 
} 

String.prototype.php_unhtmlspecialchars = function() 
{ 
return this.replace(/&quot;/g, '"').replace(/&gt;/g, '>').replace(/&lt;/g, '<').replace(/&amp;/g, '&'); 
} 

String.prototype.php_addslashes = function() 
{ 
return this.replace(/\\/g, '\\\\').replace(/'/g, '\\\''); 
} 

String.prototype._replaceEntities = function(sInput, sDummy, sNum) 
{ 
return String.fromCharCode(parseInt(sNum)); 
} 

String.prototype.removeEntities = function() 
{ 
return this.replace(/&(amp;)?#(\d+);/g, this._replaceEntities); 
} 

String.prototype.easyReplace = function (oReplacements) 
{ 
var sResult = this; 
for (var sSearch in oReplacements) 
    sResult = sResult.replace(new RegExp('%' + sSearch + '%', 'g'), oReplacements[sSearch]); 

return sResult; 
} 

기본적으로, 제가해야 할 것은 따옴표의 모든 인스턴스 ("),>, <, 작은 따옴표 (')를 교체하고, 등 등 기본적으로 같은 물건이 PHP에서를 htmlentities() 변경되었지만 텍스트에서 제거되도록 빈 문자열로 바꿔야합니다.

위의 기능 중 하나를 사용할 수 있습니까? 그렇지 않은 경우 어떻게 자바 스크립트로이 작업을 수행 할 수 있습니까? 문자열에 대체 하시겠습니까?

제발 누군가를 도와주세요.이 텍스트를 선택 상자에 넣고 f를 입력하면 데이터베이스에 입력됩니다. orm. 비록, 나는 PHP를 사용하여 이러한 문자를 모두 제거하지만, 나는 어려움을 자바 스크립트에서 이렇게하는 방법을 찾는 중이 야.

감사합니다 :)

+0

목표는 무엇입니까? 태그를 제거하려는 것, 즉 HTML에서 텍스트 콘텐츠를 추출하는 것과 같습니까? – deceze

+0

아니요, 사용자가 텍스트 상자에 입력 할 수 있도록 허용하고 있으며 데이터베이스에 들어가기 때문에 텍스트 상자가 중요합니다. 선택 상자에이 텍스트가 이미 있는지 확인합니다. 그래서 이미 데이터베이스에있는 동일한 값을 삽입하고 싶지 않기 때문에 특수 문자를 제거해야합니다. – SoLoGHoST

+0

그러나 PHP에서 스트립을 계속하는지 확인하십시오. 서버에서 테스트하지 않으면 자바 스크립트를 직접 HTML을 데이터베이스에 삽입하지 않아도됩니다. – mplungjan

답변

10

Remove special characters (like !, >, ?, ., # etc.,) from a string using JavaScript:

var temp = new String('This is a te!!!!st st>ring... So??? What...'); 
document.write(temp + '<br>'); 
temp = temp.replace(/[^a-zA-Z 0-9]+/g,''); 
document.write(temp + '<br>'); 

jsFiddle

편집 :

당신은 문자열에서 점을 제거 할 수없는 경우 :

(.)
temp = temp.replace(/[^a-zA-Z 0-9.]+/g,''); 
+0

감사합니다. 실제로 내 자신의 문자를 정의 할 수있는 방법을 사용합니다. 이는 엔티티를 제거하는 것보다 낫습니다. 감사합니다 :) 그냥'-'와'_'를 추가해야했습니다. – SoLoGHoST

관련 문제