我有脚本,人们把他们的名字和脚本根据他们真名的第一个字符生成不同的名字。
var firstNm = document.getElementById("Ime").value.toUpperCase();
我在65-90(A-Z)阵列中拥有的新名字。 获得第一个字母的程序如下:
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"));
});
});
答案 0 :(得分: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;
}
因为我只需要在字符串中替换第一个字母,而不是第五个或第四个
我在keyup上调用了函数
<input type="text" id="Ime" size="30" onkeyup="zamjenaZnakovaI()"/>
也许有更好的解决方案,但这个有效。 因此,如果其他人需要类似的东西,这就是可以做到的一种方式。
干杯,D。
答案 1 :(得分:0)
您可以在https://github.com/mplatt/fold-to-ascii-js
找到我的Apache Lucene ASCII折叠过滤器的JavaScript端口它将前127个ASCII字符中不包含的Unicode字符转换为ASCII等效字符。
它处理您发布的角色(以及更多)。