2

人々が自分の名前を入力するスクリプトがあり、スクリプトは本名の最初の文字に基づいて異なる名前を生成します。

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

65-90 (AZ) から配列にあるそれらの新しい名前。最初の文字を取得する手順は次のとおりです。

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

しかしその前に、ユーザーがŠIMEを入力するときに「ŠIME」などのすべての文字を「SIME」に変更したいと思い、これで試しましたが、うまくいかないようです

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

2 に答える 2

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;
}

5番目や4番目ではなく、文字列の最初の文字を置き換えるだけでよいため

キーアップで関数を呼び出しました

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

より良い解決策があるかもしれませんが、これは機能します。したがって、他の誰かが同様の何かを必要とする場合、これが実行できる1つの方法です。

乾杯、D。

于 2012-12-15T19:44:34.347 に答える
0

私の Apache Lucene ASCII 折りたたみフィルターの JavaScript ポートは、https://github.com/mplatt/fold-to-ascii-jsにあります。

最初の 127 ASCII 文字に含まれていない Unicode 文字を同等の ASCII 文字に変換します。

投稿した文字 (およびその他の文字) を処理します。

于 2014-01-07T19:52:59.803 に答える