javascript - jquery验证器方法不接受纯数字或纯特殊字符,但接受上面有字母的情况?

标签 javascript jquery regex

准确地说,如果用户输入“123”,这是无效的,因为输入中不存在字母。但如果用户输入“D123”,则这是有效的,因为输入中存在字母。为此,我可以使用这个

jQuery.validator.addMethod ("numbernot",function(value, element)
{
return this.optional(element) || /^(?![0-9]*$)[a-zA-Z0-9 ]+$/i.test(value);
}, "INVALID");

但该方法的问题是,不允许使用特殊字符,我怎样才能让它只接受特殊字符 ' 和 - 。 与上述规则相同,如果用户输入“-'--”,这是无效的,因为它是纯特殊字符,但如果用户输入“-'D-”,这是有效的,因为它上面有一个字母。

另一个也是最后一个问题,我也希望它接受另一种语言,让我们说一个日语单词,比如“こんにちは”。谢谢,如果我的问题太残酷,我很抱歉。

最佳答案

/^(?=.*[a-zA-Z\u3000-\u303F\u3040-\u309F\u30A0-\u30FF\uFF00-\uFFEF\u4E00-\u9FAF\u2605-\u2606\u2190-\u2195\u203B])[\w\-'\u3000-\u303F\u3040-\u309F\u30A0-\u30FF\uFF00-\uFFEF\u4E00-\u9FAF\u2605-\u2606\u2190-\u2195\u203B]+$/
  1. 向前查看 ASCII 字母或日语字符
  2. 使用\w(ascii字母数字)或日语字符,或-,或',限制为带有 anchor 的整个字符串。<

regex demo// 日语 unicode 改编自 here

关于javascript - jquery验证器方法不接受纯数字或纯特殊字符,但接受上面有字母的情况?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37151690/

相关文章:

javascript - 全日历跳转到日期

javascript - 识别这个JavaScript?

jquery - HTML5/js - 如何为两个坐标之间的直线设置动画?

javascript - 为什么我必须使用 $(this)?

用于验证 URL 的 PHP 正则表达式

python - 如何使用 python 删除文件基名的扩展名

用于解析 Instagram 标题中提到的用户名的正则表达式

javascript - 无法同时在angularjs中执行2个$http调用

javascript - 在一个页面上运行多个模型投影仪

javascript - 根据变量angular生成动态css