【发布时间】:2017-08-29 18:00:47
【问题描述】:
在 onkeyup 上,我想将重音字符替换为非重音字符。现在有了这段代码,我什么也没得到。如果我不给函数this.value,我会收到split 的错误。
我想通过 onkeyup 使用此功能获得更多输入,但始终针对该输入,即我正在写的内容。
<input onKeyUp="RemoveAccents(this.value);" type="text" required name="termek_seo" class="product-name" value="<?php echo isset($_POST["termek_seo"])?$_POST["termek_seo"]:""; ?>" />
function RemoveAccents(strAccents)
{
var strAccents = strAccents.split('');
var strAccentsOut = new Array();
var strAccentsLen = strAccents.length;
var accents = 'ÀÁÂÃÄÅàáâãäåÒÓÔÕÕÖØòóôõöøÈÉÊËèéêëðÇçÐÌÍÎÏìíîïÙÚÛÜùúûüÑñŠšŸÿýŽž';
var accentsOut = "AAAAAAaaaaaaOOOOOOOooooooEEEEeeeeeCcDIIIIiiiiUUUUuuuuNnSsYyyZz";
for (var y = 0; y < strAccentsLen; y++)
{
if (accents.indexOf(strAccents[y]) != -1)
{
strAccentsOut[y] = accentsOut.substr(accents.indexOf(strAccents[y]), 1);
}
else
{
strAccentsOut[y] = strAccents[y];
}
}
strAccentsOut = strAccentsOut.join('');
return strAccentsOut;
}
更新:
我怎样才能在这段代码中写出tolowcase?
function RemoveAccents(s)
{
var i = 'ÀÁÂÃÄÅàáâãäåÒÓÔÕÕÖŐòóôõöőÈÉÊËèéêëðÇçÐÌÍÎÏìíîïÙÚÛÜŰùúûüűÑñŠšŸÿýŽž'.split('');
var o = 'AAAAAAaaaaaaOOOOOOOooooooEEEEeeeeeCcDIIIIiiiiUUUUUuuuuuNnSsYyyZz'.split('');
var map = {};
i.forEach(function(el, idx) {map[el] = o[idx]});
return s.replace(/[^A-Za-z0-9]/g, function(ch) { return map[ch] || ch; })
}
【问题讨论】:
-
它只是工作...... :]
-
有效??在哪里? :)
标签: javascript non-ascii-characters