中文的Javascript验证

时间:2014-09-25 05:45:10

标签: javascript regex locale

我已经使用以下代码进行网页网址验证,该网页网址验证工作正常,但是它不适用于中文。

请提供中文解决方案

    function Validation() {
        var errorflag = false;          
        var allow_char = /^[0-9a-zA-Z\s\-\_]+$/;            
        var pagename = document.frm.page_name.value;

        if (pagename.search(allow_char) == -1) {
            document.getElementById("pageNameError").innerHTML = "Invalid URL";
            if(errorflag == false) {
                document.frm.page_name.focus(); // Set focus on form element.
            }
            errorflag = true;
        } else {
            document.getElementById("pageNameError").innerHTML = "";
        }
        if (errorflag == true) {
            return false;
        }
        return true;     
    }

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

您需要修复allow_char正则表达式。根据答案here添加字符范围:

var allow_char = /^[\u4E00-\u9FFF\u3400-\u4DFF]+$/;

是一种解决方案。 (我将把星体范围作为练习留给读者:p - 如果你需要那些,请阅读UCS-2 / UTF-16的JavaScript处理)