2010-12-27 2 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; 
} 

В принципе, то, что мне нужно сделать, это заменить все экземпляры в двойные кавычки ("),> <, одиночные кавычки (') и т.д. и т.п .. В основном тот же самый материал, что htmlentities() в PHP изменения, но мне нужно заменить их пустой строкой, чтобы они были удалены из текста.

Можно ли использовать любую из вышеперечисленных функций? Если нет, как это сделать в Javascript? Могу ли я использовать заменить на строку?

Пожалуйста, помогите мне здесь. Я помещаю этот текст в поле выбора и будет введен в базу данных при отправке f ОРМ. Хотя, я использую PHP для удаления всех этих символов, однако мне трудно найти способ сделать это в Javascript.

Спасибо :)

+0

Какая цель? Похоже, вы хотите снять теги, т. Е. Извлечь текстовый контент из HTML, правильно? – deceze

+0

Нет, я разрешаю пользователям вводить текстовое поле, и это входит в базу данных, и текстовое поле имеет решающее значение для его ввода. Он проверяет, есть ли в этом поле выбора этот текст. Поэтому ему нужно снять специальные символы, потому что я не хочу вставлять в базу данных то же самое значение, которое уже есть. – SoLoGHoST

+0

Однако НЕ ЗАПРЕЩАЙТЕСЬ, ЧТОБЫ ЗАПРЕЩАЕТЕТЬ ПЛАТФОРМУ, так как это очень легко обойти ваш javascript, чтобы ввести 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

Edit:

Если вы не хотите, чтобы удалить точку из строки (.):

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

Спасибо, используя ваш метод, я могу определить собственные персонажи. Это лучше, чем удалять сущности. Спасибо :) Просто нужно было добавить в '' 'и' _'. – SoLoGHoST