我想在 Javascript 中将重音字母和各种编码转换为纯英文 ASCII 编码,并想知道有哪些可能的选项。我需要的是:
éclair ~becomes~ eclair
bär ~becomes~ bar
привет ~becomes~ privet
こんにちは ~becomes~ konnichiva
正如你所看到的,这个想法是任何语言都会被转换成简单的英语 ASCII 等价物。 áčçéñtèd 字母将转换为它们的普通等效字母,西里尔字母或日文编码中的字母将转换为它们的音译等效字母。
有人知道用 Javascript 实现这一点的方法吗?
有许多 Node 模块可以做类似的事情,但比 node-iconv 轻得多,特别是,它们都是 JS 的,不需要您编译任何 C 或 C++:
-
节点统一码似乎主要满足您的要求:
$ npm install unidecode
...
[email protected] node_modules/unidecode
$ node
> var unidecode = require('unidecode');
undefined
> unidecode('éclair')
'eclair'
> unidecode('bär')
'bar'
> unidecode('привет')
'priviet'
> unidecode('こんにちは')
'konnitiha'
-
节点音译器重量更轻,但行为与您的要求相差甚远:
$ npm install transliterator
...
[email protected] node_modules/transliterator
$ node
> var transliterator = require('transliterator');
undefined
> transliterator('éclair')
'eclair'
> transliterator('bär')
'baer'
> transliterator('привет')
''
> transliterator('こんにちは')
''
-
节点 URL 化稍微接近但也离你要求的更远:
$ npm install urlify
...
[email protected] node_modules/urlify
$ node
> var urlify = require('urlify').create({ spaces: ' ' });
undefined
> urlify('éclair')
'eclair'
> urlify('bär')
'bar'
> urlify('привет')
'privet'
> urlify('こんにちは')
'_____'
-
最后,limax是更重量级的,当我这样做的时候npm install limax
它打印了很多 C 编译器警告,但它仍然有效,并且最接近您的要求:
$ npm install limax
...
[email protected] node_modules/limax
├── [email protected]
├── [email protected]
├── [email protected] ([email protected])
└── [email protected]
$ node
> var slug = require('limax')
undefined
> slug('éclair')
'eclair'
> slug('bär')
'baer'
> slug('привет')
'privet'
> slug('こんにちは')
'konnichiha'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)