繁体   English   中英

如何使用JavaScript将某些字符更改为HTML文本区域中的其他字符

[英]How to change certain characters to other characters in a textarea in html using javascript

我有一个textarea标记,我希望它可以将字符čćđšžcdsz
例如:某人用该字符键入一个名字(例如Čhuck ,我想说它为Chuck。

谁能帮我解决这个问题?

谢谢

我已经从这里的另一个答案中借用它,但是它似乎很好用。

 function removeDiacritics (str) { return str.replace(/[^\-\~]/g, function(a){ return diacriticsMap[a] || a; }); } function replaceText(){ var str = document.getElementById('my-area').value; document.getElementById('my-area').value = removeDiacritics(str); } var defaultDiacriticsRemovalMap = [ {'base':'A', 'letters':'\A\Ⓐ\A\À\Á\Â\Ầ\Ấ\Ẫ\Ẩ\Ã\Ā\Ă\Ằ\Ắ\Ẵ\Ẳ\Ȧ\Ǡ\Ä\Ǟ\Ả\Å\Ǻ\Ǎ\Ȁ\Ȃ\Ạ\Ậ\Ặ\Ḁ\Ą\Ⱥ\Ɐ'}, {'base':'AA','letters':'\Ꜳ'}, {'base':'AE','letters':'\Æ\Ǽ\Ǣ'}, {'base':'AO','letters':'\Ꜵ'}, {'base':'AU','letters':'\Ꜷ'}, {'base':'AV','letters':'\Ꜹ\Ꜻ'}, {'base':'AY','letters':'\Ꜽ'}, {'base':'B', 'letters':'\B\Ⓑ\B\Ḃ\Ḅ\Ḇ\Ƀ\Ƃ\Ɓ'}, {'base':'C', 'letters':'\C\Ⓒ\C\Ć\Ĉ\Ċ\Č\Ç\Ḉ\Ƈ\Ȼ\Ꜿ'}, {'base':'D', 'letters':'\D\Ⓓ\D\Ḋ\Ď\Ḍ\Ḑ\Ḓ\Ḏ\Đ\Ƌ\Ɗ\Ɖ\Ꝺ\Ð'}, {'base':'DZ','letters':'\DZ\DŽ'}, {'base':'Dz','letters':'\Dz\Dž'}, {'base':'E', 'letters':'\E\Ⓔ\E\È\É\Ê\Ề\Ế\Ễ\Ể\Ẽ\Ē\Ḕ\Ḗ\Ĕ\Ė\Ë\Ẻ\Ě\Ȅ\Ȇ\Ẹ\Ệ\Ȩ\Ḝ\Ę\Ḙ\Ḛ\Ɛ\Ǝ'}, {'base':'F', 'letters':'\F\Ⓕ\F\Ḟ\Ƒ\Ꝼ'}, {'base':'G', 'letters':'\G\Ⓖ\G\Ǵ\Ĝ\Ḡ\Ğ\Ġ\Ǧ\Ģ\Ǥ\Ɠ\Ꞡ\Ᵹ\Ꝿ'}, {'base':'H', 'letters':'\H\Ⓗ\H\Ĥ\Ḣ\Ḧ\Ȟ\Ḥ\Ḩ\Ḫ\Ħ\Ⱨ\Ⱶ\Ɥ'}, {'base':'I', 'letters':'\I\Ⓘ\I\Ì\Í\Î\Ĩ\Ī\Ĭ\İ\Ï\Ḯ\Ỉ\Ǐ\Ȉ\Ȋ\Ị\Į\Ḭ\Ɨ'}, {'base':'J', 'letters':'\J\Ⓙ\J\Ĵ\Ɉ'}, {'base':'K', 'letters':'\K\Ⓚ\K\Ḱ\Ǩ\Ḳ\Ķ\Ḵ\Ƙ\Ⱪ\Ꝁ\Ꝃ\Ꝅ\Ꞣ'}, {'base':'L', 'letters':'\L\Ⓛ\L\Ŀ\Ĺ\Ľ\Ḷ\Ḹ\Ļ\Ḽ\Ḻ\Ł\Ƚ\Ɫ\Ⱡ\Ꝉ\Ꝇ\Ꞁ'}, {'base':'LJ','letters':'\LJ'}, {'base':'Lj','letters':'\Lj'}, {'base':'M', 'letters':'\M\Ⓜ\M\Ḿ\Ṁ\Ṃ\Ɱ\Ɯ'}, {'base':'N', 'letters':'\N\Ⓝ\N\Ǹ\Ń\Ñ\Ṅ\Ň\Ṇ\Ņ\Ṋ\Ṉ\Ƞ\Ɲ\Ꞑ\Ꞥ'}, {'base':'NJ','letters':'\NJ'}, {'base':'Nj','letters':'\Nj'}, {'base':'O', 'letters':'\O\Ⓞ\O\Ò\Ó\Ô\Ồ\Ố\Ỗ\Ổ\Õ\Ṍ\Ȭ\Ṏ\Ō\Ṑ\Ṓ\Ŏ\Ȯ\Ȱ\Ö\Ȫ\Ỏ\Ő\Ǒ\Ȍ\Ȏ\Ơ\Ờ\Ớ\Ỡ\Ở\Ợ\Ọ\Ộ\Ǫ\Ǭ\Ø\Ǿ\Ɔ\Ɵ\Ꝋ\Ꝍ'}, {'base':'OI','letters':'\Ƣ'}, {'base':'OO','letters':'\Ꝏ'}, {'base':'OU','letters':'\Ȣ'}, {'base':'OE','letters':'\Œ\Œ'}, {'base':'oe','letters':'\œ\œ'}, {'base':'P', 'letters':'\P\Ⓟ\P\Ṕ\Ṗ\Ƥ\Ᵽ\Ꝑ\Ꝓ\Ꝕ'}, {'base':'Q', 'letters':'\Q\Ⓠ\Q\Ꝗ\Ꝙ\Ɋ'}, {'base':'R', 'letters':'\R\Ⓡ\R\Ŕ\Ṙ\Ř\Ȑ\Ȓ\Ṛ\Ṝ\Ŗ\Ṟ\Ɍ\Ɽ\Ꝛ\Ꞧ\Ꞃ'}, {'base':'S', 'letters':'\S\Ⓢ\S\ẞ\Ś\Ṥ\Ŝ\Ṡ\Š\Ṧ\Ṣ\Ṩ\Ș\Ş\Ȿ\Ꞩ\Ꞅ'}, {'base':'T', 'letters':'\T\Ⓣ\T\Ṫ\Ť\Ṭ\Ț\Ţ\Ṱ\Ṯ\Ŧ\Ƭ\Ʈ\Ⱦ\Ꞇ'}, {'base':'TZ','letters':'\Ꜩ'}, {'base':'U', 'letters':'\U\Ⓤ\U\Ù\Ú\Û\Ũ\Ṹ\Ū\Ṻ\Ŭ\Ü\Ǜ\Ǘ\Ǖ\Ǚ\Ủ\Ů\Ű\Ǔ\Ȕ\Ȗ\Ư\Ừ\Ứ\Ữ\Ử\Ự\Ụ\Ṳ\Ų\Ṷ\Ṵ\Ʉ'}, {'base':'V', 'letters':'\V\Ⓥ\V\Ṽ\Ṿ\Ʋ\Ꝟ\Ʌ'}, {'base':'VY','letters':'\Ꝡ'}, {'base':'W', 'letters':'\W\Ⓦ\W\Ẁ\Ẃ\Ŵ\Ẇ\Ẅ\Ẉ\Ⱳ'}, {'base':'X', 'letters':'\X\Ⓧ\X\Ẋ\Ẍ'}, {'base':'Y', 'letters':'\Y\Ⓨ\Y\Ỳ\Ý\Ŷ\Ỹ\Ȳ\Ẏ\Ÿ\Ỷ\Ỵ\Ƴ\Ɏ\Ỿ'}, {'base':'Z', 'letters':'\Z\Ⓩ\Z\Ź\Ẑ\Ż\Ž\Ẓ\Ẕ\Ƶ\Ȥ\Ɀ\Ⱬ\Ꝣ'}, {'base':'a', 'letters':'\a\ⓐ\a\ẚ\à\á\â\ầ\ấ\ẫ\ẩ\ã\ā\ă\ằ\ắ\ẵ\ẳ\ȧ\ǡ\ä\ǟ\ả\å\ǻ\ǎ\ȁ\ȃ\ạ\ậ\ặ\ḁ\ą\ⱥ\ɐ'}, {'base':'aa','letters':'\ꜳ'}, {'base':'ae','letters':'\æ\ǽ\ǣ'}, {'base':'ao','letters':'\ꜵ'}, {'base':'au','letters':'\ꜷ'}, {'base':'av','letters':'\ꜹ\ꜻ'}, {'base':'ay','letters':'\ꜽ'}, {'base':'b', 'letters':'\b\ⓑ\b\ḃ\ḅ\ḇ\ƀ\ƃ\ɓ'}, {'base':'c', 'letters':'\c\ⓒ\c\ć\ĉ\ċ\č\ç\ḉ\ƈ\ȼ\ꜿ\ↄ'}, {'base':'d', 'letters':'\d\ⓓ\d\ḋ\ď\ḍ\ḑ\ḓ\ḏ\đ\ƌ\ɖ\ɗ\ꝺ'}, {'base':'dz','letters':'\dz\dž'}, {'base':'e', 'letters':'\e\ⓔ\e\è\é\ê\ề\ế\ễ\ể\ẽ\ē\ḕ\ḗ\ĕ\ė\ë\ẻ\ě\ȅ\ȇ\ẹ\ệ\ȩ\ḝ\ę\ḙ\ḛ\ɇ\ɛ\ǝ'}, {'base':'f', 'letters':'\f\ⓕ\f\ḟ\ƒ\ꝼ'}, {'base':'g', 'letters':'\g\ⓖ\g\ǵ\ĝ\ḡ\ğ\ġ\ǧ\ģ\ǥ\ɠ\ꞡ\ᵹ\ꝿ'}, {'base':'h', 'letters':'\h\ⓗ\h\ĥ\ḣ\ḧ\ȟ\ḥ\ḩ\ḫ\ẖ\ħ\ⱨ\ⱶ\ɥ'}, {'base':'hv','letters':'\ƕ'}, {'base':'i', 'letters':'\i\ⓘ\i\ì\í\î\ĩ\ī\ĭ\ï\ḯ\ỉ\ǐ\ȉ\ȋ\ị\į\ḭ\ɨ\ı'}, {'base':'j', 'letters':'\j\ⓙ\j\ĵ\ǰ\ɉ'}, {'base':'k', 'letters':'\k\ⓚ\k\ḱ\ǩ\ḳ\ķ\ḵ\ƙ\ⱪ\ꝁ\ꝃ\ꝅ\ꞣ'}, {'base':'l', 'letters':'\l\ⓛ\l\ŀ\ĺ\ľ\ḷ\ḹ\ļ\ḽ\ḻ\ſ\ł\ƚ\ɫ\ⱡ\ꝉ\ꞁ\ꝇ'}, {'base':'lj','letters':'\lj'}, {'base':'m', 'letters':'\m\ⓜ\m\ḿ\ṁ\ṃ\ɱ\ɯ'}, {'base':'n', 'letters':'\n\ⓝ\n\ǹ\ń\ñ\ṅ\ň\ṇ\ņ\ṋ\ṉ\ƞ\ɲ\ʼn\ꞑ\ꞥ'}, {'base':'nj','letters':'\nj'}, {'base':'o', 'letters':'\o\ⓞ\o\ò\ó\ô\ồ\ố\ỗ\ổ\õ\ṍ\ȭ\ṏ\ō\ṑ\ṓ\ŏ\ȯ\ȱ\ö\ȫ\ỏ\ő\ǒ\ȍ\ȏ\ơ\ờ\ớ\ỡ\ở\ợ\ọ\ộ\ǫ\ǭ\ø\ǿ\ɔ\ꝋ\ꝍ\ɵ'}, {'base':'oi','letters':'\ƣ'}, {'base':'ou','letters':'\ȣ'}, {'base':'oo','letters':'\ꝏ'}, {'base':'p','letters':'\p\ⓟ\p\ṕ\ṗ\ƥ\ᵽ\ꝑ\ꝓ\ꝕ'}, {'base':'q','letters':'\q\ⓠ\q\ɋ\ꝗ\ꝙ'}, {'base':'r','letters':'\r\ⓡ\r\ŕ\ṙ\ř\ȑ\ȓ\ṛ\ṝ\ŗ\ṟ\ɍ\ɽ\ꝛ\ꞧ\ꞃ'}, {'base':'s','letters':'\s\ⓢ\s\ß\ś\ṥ\ŝ\ṡ\š\ṧ\ṣ\ṩ\ș\ş\ȿ\ꞩ\ꞅ\ẛ'}, {'base':'t','letters':'\t\ⓣ\t\ṫ\ẗ\ť\ṭ\ț\ţ\ṱ\ṯ\ŧ\ƭ\ʈ\ⱦ\ꞇ'}, {'base':'tz','letters':'\ꜩ'}, {'base':'u','letters': '\u\ⓤ\u\ù\ú\û\ũ\ṹ\ū\ṻ\ŭ\ü\ǜ\ǘ\ǖ\ǚ\ủ\ů\ű\ǔ\ȕ\ȗ\ư\ừ\ứ\ữ\ử\ự\ụ\ṳ\ų\ṷ\ṵ\ʉ'}, {'base':'v','letters':'\v\ⓥ\v\ṽ\ṿ\ʋ\ꝟ\ʌ'}, {'base':'vy','letters':'\ꝡ'}, {'base':'w','letters':'\w\ⓦ\w\ẁ\ẃ\ŵ\ẇ\ẅ\ẘ\ẉ\ⱳ'}, {'base':'x','letters':'\x\ⓧ\x\ẋ\ẍ'}, {'base':'y','letters':'\y\ⓨ\y\ỳ\ý\ŷ\ỹ\ȳ\ẏ\ÿ\ỷ\ẙ\ỵ\ƴ\ɏ\ỿ'}, {'base':'z','letters':'\z\ⓩ\z\ź\ẑ\ż\ž\ẓ\ẕ\ƶ\ȥ\ɀ\ⱬ\ꝣ'} ]; var diacriticsMap = {}; for (var i=0; i < defaultDiacriticsRemovalMap .length; i++){ var letters = defaultDiacriticsRemovalMap [i].letters; for (var j=0; j < letters.length ; j++){ diacriticsMap[letters[j]] = defaultDiacriticsRemovalMap [i].base; } } 
 <textarea id="my-area">čćđšž, Čhuck</textarea> <button onclick="replaceText();">Replace text</button> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM