2

我正在创建一个使用我创建的新语言(如 BBcode)的 Web 文本编辑器。这种标记语言将是阿拉伯语,但我面临这些问题:

  • 在所有 IDE 和编辑器中,很难在同一行中混合英语和阿拉伯语文本,因为会发生奇怪的事情(单词和字符的顺序会发生变化)
  • 使用模式用 javascript 替换文本时,不会出现阿拉伯文本(例如:"1 text arabic here 1".replace(/1(*)1/,"($1)")我得到空 ()

我怎样才能解决这个问题 ?

4

1 回答 1

2

也许您可以使用一些不太可能的分隔符来指定数据缓冲区中编码切换的点。这将使您的解析函数识别必须以不同方式处理的文件块。

我不知道您的阿拉伯语文本是否使用 UTF-8 字符。希望可以在 UTF-8 中以英语和阿拉伯语呈现所有必要的字符。然后,您可以使用定界符告诉您的其他代码如何处理行为不同的文本片段。

>some english/L-T-R markup  
Ⓐ**...markup R-T-L Some**كل الخارجي للنص أو شكل توضع الفقرات في الصفحة التي يقرأها. ولذلك يتم استخدام طريقة لوريم إيبسوم لأنها تعطي توزيعاَ طبيعياَ -إلى حد ما- للأحرف عوضاً عن استخدام "هنا يوجد محتوى نصي، هنا يوجد محتوى نصي" فتجعلها تبدو (أي الأحرف) وكأنها نص مقروء. العديد من برامح النشر المكتبي وبرامح تحرير صفحات الويب تستخدم لوريم إيبسوم بشكل إفتراضي كنموذج عن اⒶ  

不知道关于正则表达式,希望 github 上已经有库可以处理混合的阿拉伯文和英文正则表达式 :)

编辑:Stack Overflow 的降价第一次吃了一些东西(天知道它对我粘贴的阿拉伯语 lorem ipsum 做了什么)

编辑:这是寻找阿拉伯语标签的开始

var src = "try to write javascript that replaces <رابط>نص تجريبي</رابط> by <a href='#'>نص تجريبي</a> and you wil notice all the difficulties – user2080105 15 mins ago"
var a = src.match(/try/);
console.log(a);
var b = src.match(/<[^>]*>/);
console.log(b);
var c = src.match(/<\/?[^>]*>/g);
console.log(c);

//Output in node v0.9.4-pre

[ 'try',
  index: 0,
  input: 'try to write javascript that replaces <رابط>نص تجريبي</رابط> by <a href=\'#\'>نص تجريبي</a> and you wil notice all the difficulties – user2080105 15 mins ago' ]
[ '<رابط>',
  index: 38,
  input: 'try to write javascript that replaces <رابط>نص تجريبي</رابط> by <a href=\'#\'>نص تجريبي</a> and you wil notice all the difficulties – user2080105 15 mins ago' ]
[ '<رابط>', '</رابط>', '<a href=\'#\'>', '</a>' ]
于 2013-03-04T17:50:02.573 回答