Javascript函数删除特殊字符

Javascript function to remove special characters

本文关键字:特殊字符 删除 函数 Javascript      更新时间:2023-09-26

我有一个函数来替换文本字段中的特殊字符并将所有文本更改为大写。如果我将函数直接添加到<script>标签中:

<script language="JavaScript" type="text/javascript">
function ...
<script/>

脚本工作正常

如果我将它作为外部文件包含:

<script type="text/javascript" src="<?php echo $dir_js; ?>/plugins/replace.js"></script>

只更改为大写,特殊字符不删除。

帮忙吗?怎么了?

function retiraAcento(palavra,obj)
{
  com_acento = 'áàãâäéèêëíìîïóòõôöúùûüçÁÀÃÂÄÉÈÊËÍÌÎÏÓÒÕÖÔÚÙÛÜÇ';
  sem_acento = 'aaaaaeeeeiiiiooooouuuucAAAAAEEEEIIIIOOOOOUUUUC';
  nova='';
  for(i=0;i<palavra.length;i++) {
    if (com_acento.search(palavra.substr(i,1))>=0) {
      nova+=sem_acento.substr(com_acento.search(palavra.substr(i,1)),1);
    }
    else {
      nova+=palavra.substr(i,1);
    }
  }
  obj.value = nova.toUpperCase();
}
$(":input").live('blur', function() {
  retiraAcento(this.value, this);
});

你应该把你的代码包装在ready事件上:

$(document).ready(function() {
  $(":input").live('blur', function() {
    retiraAcento(this.value, this);
  }); 
});

我的猜测是您的外部文件与主文件的编码不同。您应该确保这两个文件都有UTF-8编码,另外您还应该确保您使用的任何服务器都以正确的内容类型提供文件。

如果文件有不同的编码,这将导致您遇到的问题,因为在您的输入中键入的á将不匹配您的javascript文件中的á —因此无法找到并删除。

另一种方法是在外部JavaScript中不使用硬编码值,而是使用RegExp检查,并在这里找到信息:

http://www.regular-expressions.info/unicode.html字母