Jquery只允许使用Alpha数字+国际字符(但不允许使用符号)

时间:2015-02-04 12:31:32

标签: jquery regex validation

我需要验证一个不允许使用任何符号的表单,例如❦❧ლ۝。

我发现这个解决方案有效,但它也不允许使用国际字符(例如德语字符 - ü)。

理想情况下,我也应该能够允许一些标点符号 - 例如“ - ”,“:”。

        if( /[^a-zA-Z0-9\-\/]/.test($('.my_textarea').val()) ) {
            isFormValid = false;
        }

3 个答案:

答案 0 :(得分:1)

您可以使用\uXXXX语法(XXXX表示十六进制代码点)将js regexen中的国际字符指定为单个unicode代码点或其范围。因此,添加您希望支持的字母表的代码点范围可能是一个可行的解决方案(当然,如果您希望支持所有脚本,则不会,但是,根据国家/语言选择,您可以应用不同的regexen)。

咨询unicode code chart synopsisthe wikipedia page(各个脚本的页面包含右上方摘要框中的代码点范围)以查找相应的代码。

示例(西里尔字母):

/[^a-zA-Z0-9\u0400-\u04ff\-\/]/

答案 1 :(得分:0)

如果你使用POSIX expressions,你将允许任何符号和标点符号:

/[^a-zA-Z0-9\-\/[:ascii:][:punct:]]/

所以,我认为最好的方法是在列表中插入允许的符号作为例外:

/[^a-zA-Z0-9\-\/,.ü]/

答案 2 :(得分:0)

由于您似乎只想要允许的一小部分字符,我会坚持使用白名单所有允许的字符(而不是将不允许的字符列入黑名单)。
例如:

[^\w\-\/üäöÜÄÖ.,:;]

\wa-zA-Z0-9_的缩写,如果您不想要_,则坚持使用a-zA-Z0-9

对于更多字符,只需将它们添加到您的角色组。