簡體   English   中英

Javascript功能刪除特殊字符

[英]Javascript function to remove special characters

我有一個函數來替換文本字段中的特殊字符,並將所有文本更改為大寫。 如果我直接在<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#grapheme

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM