簡體   English   中英

如何在忽略特殊字符的javascript中比較字符串

[英]How to compare strings in javascript ignoring special characters

我正在開發一個應用程序,我被要求比較字符串,但字符串中的文本具有特殊字符(西班牙口音,如“á”、“é”、“í”、“ó”和“ú”)

我已經用toUpperCase()管理了大寫,但我仍然想確保我沒有重音問題。

我要做的是比較一些已經保存在系統中的單詞,並檢查是否使用了它們中的任何一個。

我所做的是將輸入的單詞存儲在一個數組中,然后繼續在另一個函數中對其進行分析(尚未實現)

這是我存儲用戶鍵入的單詞的功能(它可能會更改以使其更完整):

function clickNewWord(){
    var theWord = textField.value.toUpperCase();
    ArrayWrittenWords.push(theWord);
    textField.value = "";
}

PD:我會借此機會問:使用口音的正確編碼是什么? UTF-8?

盡管這是一個老問題,但為了未來的谷歌人,這里是從字符串中刪除重音的最佳方法:

var string = 'á é í ó ú';
string.normalize('NFD').replace(/[\u0300-\u036f]/g, '');
>a e i o u

你可以轉換它們然后匹配它們,如果我的例子很清楚,讓我來:)

var stringInTheSystem = ['aaaa','bbbb'];// Array of string in your system;

var term = 'áaaa';// the word you want to compare it; 
term = term.replace(/á/g, "a"); 
term = term.replace(/é/g, "e"); 
term = term.replace(/í/g, "i"); 
term = term.replace(/ó/g, "o"); 
term = term.replace(/ú/g, "u"); 
var matcher = new RegExp( term, "i" );
$.grep( stringInTheSystem, function( value ) {
                  value = value.test || value.value || value;
                    console.log(matcher.test( value ));
});

暫無
暫無

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

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