正则表达式jQuery验证器包括非英语字符

问题描述 投票:1回答:1

好吧,我有一个网站URL验证器。它工作得很好,但我需要添加键入阿拉伯语等非英语字符的能力。我对正则表达式有一点了解,但我不知道如何在这里允许使用阿拉伯字符,例如\ w或者\一个。

$('#WebSiteTextbox').blur(function () {

    patternurl = /([\d\w]+?:\/\/)?([\w\d\.\-]+)(\.\w+)(:\d{1,5})?(\/\S*)?/i
    if (!patternurl.test($("#WebSiteTextbox").val())) {
        $(this).attr('value','');
        $('.ValidatorError').html('Not Valid').slideDown().delay(5000).promise().done(function () {
            $(this).slideUp();
        });
    }
});

JSFiddle

javascript jquery regex
1个回答
2
投票

您需要包含阿拉伯语和波斯语字符的特定字符范围。 \w可以表示为[A-Za-z0-9_]。您可以在同一个character class中包含任何字符范围。

来自Arabic script in Unicode

  1. 阿拉伯语(0600-06FF,255个字符) Arabic-Indic数字(0660-0669) 扩展的阿拉伯数字印度数字(06F0-06F9)
  2. 阿拉伯文补编(0750-077F,48个字符)
  3. 阿拉伯语扩展-A(08A0-08FF,50个字符)
  4. 阿拉伯语演讲表格-A(FB50-FDFF,611个字符)
  5. 阿拉伯语演示表格-B(FE70-FEFF,140个字符)
  6. Rumi数字符号(10E60-10E7F,31个字符)
  7. 阿拉伯数学字母符号(1EE00-1EEFF,143个字符)

基本的阿拉伯语范围编码标准字母和变音符号,但不编码上下文形式(U + 0621-U + 0652直接基于ISO 8859-6);并且还包括最常见的变音符号和阿拉伯语 - 印度语数字。阿拉伯文补编范围编码主要用于编写非洲(非阿拉伯语)语言的字母变体。阿拉伯语扩展-A范围编码用于各种非阿拉伯语言的其他古兰经注释和字母变体。阿拉伯语演示表格 - 范围编码波斯语,乌尔都语,信德语和中亚语言所需的语境变体的语境形式和连字。阿拉伯语演示表格-B范围编码阿拉伯语变音符号的间距形式,以及更多的语境字母形式。表示形式仅用于与旧标准兼容,目前不需要编码文本。阿拉伯数学字母符号块对阿拉伯数学表达式中使用的字符进行编码。

我认为你应该包括:

  • \w:1和3
  • \d:1.1

我相信这将包括英语,阿拉伯语和波斯语:

/(\w+:\/\/)?([-.a-z0-9_\u0600-\u06FF\u08A0-\u08FF]+)(\.\w+)(:\d{1,5})?(\/\S*)?/i
  • 我假设您不能在协议,扩展名和端口号中使用阿拉伯字符,仅在域中。
© www.soinside.com 2019 - 2024. All rights reserved.