想要匹配所有非数字是阿拉伯语和英语

时间:2015-10-06 02:54:54

标签: regex

我希望匹配所有非英语和阿拉伯语的数字,这是我到目前为止所做的:(但它仍未按预期工作)

([^0-9])([^\u0660-\u0669])

DEMO LINK

字符串如下所示

osama1234456789stringnew2123 اسامه12345678

我希望只匹配数字(阿拉伯语和英语)

2 个答案:

答案 0 :(得分:1)

Arabic script in Unicode的定义显示阿拉伯数字的范围为U+0660..U+0669U+06F0..U+06F9

整个范围必须在一个 character class内。

根据您发布的链接,我会假设您在中进行编码。要替换除阿拉伯数字和0-9之外的每个字符,请使用以下表达式:

<强>正则表达式:

/[^0-9\u0660-\u0669\u06F0-\u06F9]+/g

&#13;
&#13;
var re = /[^0-9\u0660-\u0669\u06F0-\u06F9]+/g;
var str = 'osama1234456789stringnew2123 اسامه١٢٣٤٥٦٧٨';
var subst = '';
var result = str.replace(re, subst);
document.write(result);
&#13;
&#13;
&#13;

  • 其他正则表达式不支持\u0660语法。例如,在PCRE中,使用\x{0660}表示法。

regex101 Demo

答案 1 :(得分:-3)

使用\ D,它将匹配除数字之外的所有内容。