Javascript用空字符串替换特殊字符

时间:2010-12-27 07:31:52

标签: javascript regex replace

好的,我可以使用这些字符串原型,但是,我不明白他们到底做了什么。

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;
}

基本上,我需要做的是替换双引号(“),&gt;,&lt;,单引号(')等所有实例。基本上与php中的htmlentities()更改相同的东西,但我需要用空字符串替换它们,以便从文本中删除它们。

我可以使用上述任何功能吗?如果没有,我如何在Javascript中完成此操作?我可以在字符串上使用替换吗?

拜托,有人,请帮帮我。我将此文本放入选择框中,并在提交表格后输入数据库。虽然,我使用PHP删除所有这些字符,但是,我很难在Javascript中找到一种方法。

谢谢:)

1 个答案:

答案 0 :(得分:11)

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,'');