Как получить правильную первую букву в тамильском юникодном слове, используя Javascript? - PullRequest
2 голосов
/ 29 февраля 2020

Редактировать 2:

const tamilRegex = XRegExp("\\p{Tamil}", "ug")
const match = XRegExp.exec(word, tamilRegex);
return match

Теперь я нашел XRegExp библиотеку, которая может обрабатывать символы Юникода. Приведенный выше код является тем, который я пытался использовать в этой библиотеке, но он возвращает неправильное значение.

Любая помощь?!


Редактировать 1:

const word = "யாத்திராகமம்"
const firstLetter = word.match(/[^\w]/u)

console.log(firstLetter)

Приведенный выше код возвращает , который не является правильной первой тамильской буквой в этом слове, вместо этого он должен быть யா.

Любым способом получить правильную первую букву в слове с помощью регулярных выражений или любая другая библиотека?

1 Ответ

2 голосов
/ 29 февраля 2020

Я не знаю тамильский сценарий, но Википедия объясняет концепцию составных букв в этом сценарии. Блок тамильского Unicode содержит символы в диапазоне от U + 0B80 до U + 0BFF, из которых поддиапазон U + 0BBE-U + 0BCD и один в U + 0BD7 являются суффиксами, которые необходимо объединить с предшествующий согласный, чтобы сделать его составной буквой.

Без какой-либо специализированной библиотеки или более умной поддержки регулярных выражений, кажется, вы можете заставить его работать с регулярным выражением [\u0b80-\u0bff][\u0bbe-\u0bcd\u0bd7]?, которое соответствует символу в тамильском диапазоне, и дополнительно возможно, один из этих суффикс-кодов.

let s = "this is Tamil: யாத்திராகமம்";

console.log("First Tamil character: ", s.match(/[\u0b80-\u0bff][\u0bbe-\u0bcd\u0bd7]?/u));
...