Dmi*_*kin 7 javascript ascii transliteration node.js
我想在Javascript中将重音字母和各种编码转换成简单的英文ASCII格式,并想知道有哪些可能的选项.我需要的是:
éclair ~becomes~ eclair
bär ~becomes~ bar
?????? ~becomes~ privet
????? ~becomes~ konnichiva
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,这个想法是将任何语言转换为简单的英语ASCII等效语言.áčçéñtèd字母被转换为它们的简单等价物,西里尔字母或日文编码的字母被转换成它们的音译等价物.
有人知道在Javascript中这样做的方法吗?
Han*_*-Oh 28
有许多Node模块做类似的事情,但比node-iconv轻得多,特别是在所有JS中,并且不要求你编译任何C或C++:
node-unidecode似乎主要是你要求的:
$ npm install unidecode
...
unidecode@0.1.3 node_modules/unidecode
$ node
> var unidecode = require('unidecode');
undefined
> unidecode('éclair')
'eclair'
> unidecode('bär')
'bar'
> unidecode('??????')
'priviet'
> unidecode('?????')
'konnitiha'
Run Code Online (Sandbox Code Playgroud)node-transliterator的重量更轻,但与你的要求相比更进一步:
$ npm install transliterator
...
transliterator@0.1.0 node_modules/transliterator
$ node
> var transliterator = require('transliterator');
undefined
> transliterator('éclair')
'eclair'
> transliterator('bär')
'baer'
> transliterator('??????')
''
> transliterator('?????')
''
Run Code Online (Sandbox Code Playgroud)node-urlify稍微靠近,但也比你要求的更远:
$ npm install urlify
...
urlify@0.3.5 node_modules/urlify
$ node
> var urlify = require('urlify').create({ spaces: ' ' });
undefined
> urlify('éclair')
'eclair'
> urlify('bär')
'bar'
> urlify('??????')
'privet'
> urlify('?????')
'_____'
Run Code Online (Sandbox Code Playgroud)最后,limax是更重量级的,当我这样做时npm install limax会打印很多C编译器警告,但它仍然有效,并且最接近你的要求:
$ npm install limax
...
limax@0.0.2 node_modules/limax
??? speakingurl@0.9.1
??? pinyin2@2.0.8
??? hepburn@0.5.2 (bulk-replace@0.0.1)
??? cld@0.0.6
$ node
> var slug = require('limax')
undefined
> slug('éclair')
'eclair'
> slug('bär')
'baer'
> slug('??????')
'privet'
> slug('?????')
'konnichiha'
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
4366 次 |
| 最近记录: |