Javascript заменяет специальные символы на пустые строки - PullRequest
4 голосов
/ 27 декабря 2010

Хорошо, у меня есть эти строковые прототипы для работы, однако я не понимаю, что именно они делают.

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, но нужно заменить их пустой строкой, чтобы они удалялись из текста. </p>

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

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

Спасибо:)

1 Ответ

11 голосов
/ 27 декабря 2010

Удалите специальные символы (например,!,>,?,., # И т. Д.) Из строки, используя 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,'');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...