如何检查字符串中是否存在阿拉伯字符(JavaScript)

36

如何使用JavaScript检查字符串中是否存在任何阿拉伯字符

6个回答

89

根据维基百科的介绍, 阿拉伯字符属于Unicode范围0600-06FF。因此,您可以使用正则表达式来测试字符串是否包含该范围内的任何字符:

var arabic = /[\u0600-\u06FF]/;
var string = 'عربية‎'; // some Arabic string from Wikipedia

alert(arabic.test(string)); // displays true

请问我能在jQuery中使用这个吗?如果文本是阿拉伯语,我想给父元素添加类。 - kebir
1
在字符串中(大约)计算阿拉伯字符的数量:string.match(/[\u0600-\u06FF]/g).length - Rolf

9
function isArabic(text) {
    var pattern = /[\u0600-\u06FF\u0750-\u077F]/;
    result = pattern.test(text);
    return result;
}

3

对于我来说,它是如何工作的

$str = "عربية";
if(preg_match("/^\x{0600}-\x{06FF}]+/u", $str))echo "invalid";
else echo "valid";

您可以检查阿拉伯字符的扩展范围。
0x600  - 0x6ff
0x750  - 0x77f
0xfb50 - 0xfc3f
0xfe70 - 0xfefc

所以正则表达式看起来更像是"/^\x{0600}-\x{06FF}\x{0750}-\x{077f}]+/u"
祝你好运


2
  • 检查字符串是否为阿拉伯语:
function isArabic (string) {
  let def = 0;
  let ar = 0;

  string.split('').forEach(i => /[\u0600-\u06FF]/.test(i) ? (ar++) : (def++))

  return ar >= def
}

1

阿拉伯字符的范围为:

0x600  - 0x6ff

0x750  - 0x77f

0xfb50 - 0xfc3f

0xfe70 - 0xfefc

0

看看我创建的npm包。 https://www.npmjs.com/package/is-arabic 它可以检查阿拉伯文和波斯文字母以及Unicode。它还可以检查阿拉伯符号、Harakat和数字。您还可以使其检查特定数量的字符。默认情况下,它会检查整个字符串是否为阿拉伯语。使用计数选项来检查字符串是否包含阿拉伯字符。它具有完全支持。快去试试吧。

示例:

const isArabic = require("is-arabic");
const text = "سلام";

// Checks if the whole string is Arabic
if (isArabic(text)){
    // Do something
}

// Check if string includes Arabic characters
// count: The number of Arabic characters occurrences for the string to be considered Arabic
const text2 = "مرحبا Hello";
const options = { count: 4 };
const includesArabic = isArabic(text, options);
console.log(includesArabic); // true

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接