Conversation
Notices
-
🇵🇸 أحمد 🇺🇦 (ahmad@bassam.social)'s status on Saturday, 06-May-2023 07:07:25 JST 🇵🇸 أحمد 🇺🇦 Finally I have a merge request 😂
I didn't do this for a very long time, I've forgot how to do it!!
Anyway, Thanks to @karam, we've finally fixed it and hopefully we won't have further RTL detection errors.- Token likes this.
-
Alex Gleason (alex@gleasonator.com)'s status on Saturday, 06-May-2023 07:07:26 JST Alex Gleason @ahmad Good job! I think maybe you're just missing a semicolon on the very last line? If you edit with VSCodium/VSCode it should make it easier. -
🇵🇸 أحمد 🇺🇦 (ahmad@bassam.social)'s status on Saturday, 06-May-2023 07:07:27 JST 🇵🇸 أحمد 🇺🇦 This is the updated code:
'use strict'; // U+0590 to U+05FF - Hebrew // U+0600 to U+06FF - Arabic // U+0700 to U+074F - Syriac // U+0750 to U+077F - Arabic Supplement // U+0780 to U+07BF - Thaana // U+07C0 to U+07FF - N'Ko // U+0800 to U+083F - Samaritan // U+08A0 to U+08FF - Arabic Extended-A // U+FB1D to U+FB4F - Hebrew presentation forms // U+FB50 to U+FDFF - Arabic presentation forms A // U+FE70 to U+FEFF - Arabic presentation forms B const rtlChars = /[\u0590-\u083F]|[\u08A0-\u08FF]|[\uFB1D-\uFDFF]|[\uFE70-\uFEFF]/mg; /** Check if text is right-to-left (eg Arabic). */ export function isRtl(text: string): boolean { if (text.length === 0) { return false; } // Remove http(s), (s)ftp, ws(s), blob and smtp(s) links text = text.replace(/(?:https?|ftp|sftp|ws|wss|blob|smtp|smtps):\/\/[\n\S]+/g, ''); // Remove email address links text = text.replace(/(mailto:)([^\s@]+@[^\s@]+\.[^\s@]+)/g, ''); // Remove Phone numbe links text = text.replace(/(tel:)([+\d\s()-]+)/g, ''); text = text.replace(/(?:^|[^\/\w])@([a-z0-9_]+(@[a-z0-9\.\-]+)?)/ig, ''); text = text.replace(/(?:^|[^\/\w])#([\S]+)/ig, ''); text = text.replace(/\s+/g, ''); const matches = text.match(rtlChars); if (!matches) { return false; } console.log(text) return matches.length / text.length > 0.3; }Token likes this.