如何使用JavaScript检查字符串中是否存在任何阿拉伯字符
根据维基百科的介绍, 阿拉伯字符属于Unicode范围0600-06FF。因此,您可以使用正则表达式来测试字符串是否包含该范围内的任何字符:
var arabic = /[\u0600-\u06FF]/;
var string = 'عربية'; // some Arabic string from Wikipedia
alert(arabic.test(string)); // displays true
function isArabic(text) {
var pattern = /[\u0600-\u06FF\u0750-\u077F]/;
result = pattern.test(text);
return result;
}
对于我来说,它是如何工作的
$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"
祝你好运
function isArabic (string) {
let def = 0;
let ar = 0;
string.split('').forEach(i => /[\u0600-\u06FF]/.test(i) ? (ar++) : (def++))
return ar >= def
}
阿拉伯字符的范围为:
0x600 - 0x6ff
0x750 - 0x77f
0xfb50 - 0xfc3f
0xfe70 - 0xfefc
看看我创建的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
string.match(/[\u0600-\u06FF]/g).length
- Rolf