我有脚本,人们把他们的名字和脚本生成不同的名字基于他们的真实姓名的第一个字符。
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“,我尝试过这样做,但似乎不起作用
$(function() {
$('Ime').keyup(function() {
$(this).val($(this).val().replace(/Š/g, "S"));
});
});
发布于 2012-12-16 03:44:34
对不起各位,谢谢你们的帮助,我自己解决了这个问题,添加了这样的功能
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。
发布于 2014-01-08 03:53:00
您可以在https://github.com/mplatt/fold-to-ascii-js找到Apache Lucene ASCII折叠过滤器的JavaScript端口
它将不在前127个ASCII字符中的Unicode字符转换为对应的ASCII字符。
它可以处理你发布的字符(还有更多)。
https://stackoverflow.com/questions/13870502
复制相似问题