2012-12-13 42 views
2

我有腳本,人們把他們的名字和腳本根據他們的真實姓名的第一個字符生成不同的名字。取代克羅地亞語調字符

var firstNm = document.getElementById("Ime").value.toUpperCase(); 

這些新名字我從65-90(A-Z)陣列。 程序獲得第一個字母是這樣的:

var firstNum = firstNm.charCodeAt(0) - 65; 
    if (firstNum < 0 || firstNum > 25) { 
     validName = false; 

,但在這之前,我想改變所有的字符,如「森達」到「SIME」當用戶輸入SIME, 我這個嘗試,但似乎沒有工作

$(function() { 
    $('Ime').keyup(function() { 
    $(this).val($(this).val().replace(/Š/g, "S")); 
    }); 
}); 
+0

由於在Javascript中對Unicode的支持很差,我不確定你能否做到這一點(很容易)。 – zneak

+2

似乎工作正常http://jsbin.com/uhixoz/1/edit。在Chrome和Firefox中測試 – elclanrs

+0

什麼都不起作用?對我來說似乎很好。請提供帶有錯誤代碼的演示。 – Bergi

回答

0

對不起球員,感謝您的幫助,我自己解決了這個問題,通過增加功能像這樣

function zamjenaZnakovaI(){ 
var tekst = document.getElementById("Ime").value; 
tekst.indexOf('Č') == 0? tekst = tekst.replace('Č', 'C') : 
tekst.indexOf('č') == 0? tekst = tekst.replace('č', 'c') : 
tekst.indexOf('Ć') == 0? tekst = tekst.replace('Ć', 'C') : 
tekst.indexOf('ć') == 0? tekst = tekst.replace('ć', 'c') : 
tekst.indexOf('Š') == 0? tekst = tekst.replace('Š', 'S') : 
tekst.indexOf('š') == 0? tekst = tekst.replace('š', 's') : 
tekst.indexOf('Ž') == 0? tekst = tekst.replace('Ž', 'Z') : 
tekst.indexOf('ž') == 0? tekst = tekst.replace('ž', 'z') : 
tekst.indexOf('Đ') == 0? tekst = tekst.replace('Đ', 'D') : 
tekst.indexOf('đ') == 0? tekst = tekst.replace('đ', 'd') : 
tekst; 
document.getElementById("Ime").value = tekst; 
} 

因爲我n只有eeded替換第一個字母串,而不是第五或第四

我打電話功能上KEYUP

<input type="text" id="Ime" size="30" onkeyup="zamjenaZnakovaI()"/> 

也許有更好的解決方案,但這個工作。 所以如果其他人會需要類似的東西,這裏是可以完成的一種方式。

乾杯,D.

0

你可以找到在Apache Lucene的ASCII摺疊式濾芯的我的JavaScript端口在https://github.com/mplatt/fold-to-ascii-js

它轉換成Unicode字符這不是前127個ASCII字符成的ASCII碼值。

它處理您發佈的字符(以及更多)。