2016-12-28 47 views
0

我擁有阿拉伯文內容,類似於各種各樣的東西。我想獲得給定字符串中所有形式的字母(初始,中間,最終或隔離)的Unicode代碼點。在JavaScript中獲得給定字符串的阿拉伯Unicode字符的4種不同形式(初始,中間,最終或孤立)

+0

你想要的每一個字符的代碼? – yogur

+0

是@yogur。我需要知道所有字符unicodes –

+1

字母的四種不同形式都有一個代碼,無論字母在單詞中的位置如何。字母的形狀由字體處理,而不是由unicode處理。在我的例子ضضضضضضض – yogur

回答

2

一個JavaScript庫(不是我)能爲你做到這一點:https://github.com/louy/Javascript-Arabic-Reshaper

這將只需要一個使用「通用」字符的字符串並返回所有正確的特定位置替換做了新的字符串爲你。從那裏,你可以抓住每個位置的字符代碼(或代碼點)。

下面是一個簡單的用法:

//import the library 
var ArabicReshaper = require('arabic-reshaper'); 

// This can be a plain string. I just want to make sure I am feeding 
// it the "plain" letter, not the initial/middle/end forms 
var originalString = String.fromCharCode(0x0636, 0x0636); //ضض 

// this will convert it to the 'shaped' letters. that means the letters 
// will be transformed into the 'initial/middle/end' forms in the string 
// (not just when it draws to the screen. 
var newString = ArabicReshaper.convertArabic(originalString); 

// And get the values. These will be the specific initial/middle/end values, not the generic ones 
console.log(
    newString.codePointAt(0).toString(16), // outputs febf 
    newString.codePointAt(1).toString(16) // outputs febe 
);