[英]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.