今天在项目中遇到一个情况,正则表达式java后端和javascript前端的写法是一致的,但是并没有验证通过,原因还没有找到,代码如下:
public class PatternTest {
private final static String TN_NAME_SUFFIX_REGEX = "[a-zA-Z0-9]+$";
private final static Pattern TN_NAME_SUFFIX_PATTERN = Pattern.compile(TN_NAME_SUFFIX_REGEX);
@Test
public void testPattern(){
Assert.assertTrue(!TN_NAME_SUFFIX_PATTERN.matcher("aaB%").matches());
Assert.assertTrue(!TN_NAME_SUFFIX_PATTERN.matcher("aaB_").matches());
Assert.assertTrue(TN_NAME_SUFFIX_PATTERN.matcher("aaB0").matches());
}
}
这样写是没有问题,但是在qa在测试的时候发现前端没有拦截住,后端拦截住了,前端的代码如下:
var v = $.trim(formMap.tnNameSuffix);
var pattern = /[0-9a-zA-Z]+$/g;
if (!v || v.length == 0) {
return "[自定义标识]请填写自定义标识!";
} else if (v.length > 16) {
return "[自定义标识]过长,最多填写16位!";
} else if(!pattern.test(v)){
return "[自定义标识]不合法,只能为[0-9a-zA-Z],请检查!";
}
测试的结果是只要不是以特殊字符结尾都可以通过,最后修改了正则表达式就通过,修改的正则表达式如下:
var v = $.trim(formMap.tnNameSuffix);
var pattern = /^[0-9a-zA-Z]+$/g;
if (!v || v.length == 0) {
return "[自定义标识]请填写自定义标识!";
} else if (v.length > 16) {
return "[自定义标识]过长,最多填写16位!";
} else if(!pattern.test(v)){
return "[自定义标识]不合法,只能为[0-9a-zA-Z],请检查!";
}
具体原因还不清楚,如果有人熟悉的话可以帮忙分析一下,为什么js里面要这么写?
分享到:
相关推荐
许多语言,包括Perl、PHP、Python、JavaScript和JScript,都支持用正则表达式处理文本,一些文本编辑器用正则表达式实现高级“搜索-替换”功能。那么Java又怎样呢?本文写作时,一个包含了用正则表达式进行文本处理...
快速的掌握简单的java、JavaScript正则表达式,
对于如何使用正则表达式来解决性能不佳、误报、漏报等常见的错误以及完成一些常见的任务,《正则表达式经典实例》给出了涉及基于C#、Java、JavaScript、Perl、PHP、Python、Ruby和VB.NET等编程语言的解决方案。...
邮箱校验正则表达式,及其jsp编写过程,JavaScript表单验证email邮箱,判断一个输入量是否为邮箱email,通过正则表达式实现。
正则表达式是程序员必备的强大工具,得到了各种Unix实用程序,以及Perl、Java、JavaScript、C#等编程语言的支持。读完本书,你会对正则表达式的常用语法了然于胸。掌握正则表达式是提升编程效率、节约时间的一大法.....
正则表达式的定义 一个RegExp对象的每一次估值都返回新对象,这意味着RegExp是可变对象。
JavaScript&正则表达式JavaScript&正则表达式JavaScript&正则表达式JavaScript&正则表达式JavaScript&正则表达式JavaScript&正则表达式JavaScript&正则表达式JavaScript&正则表达式JavaScript&正则表达式JavaScript&...
总结的js常用的正则表达式,如邮箱,手机号码,等等验证方法。
即使有经验的用户也经常会遇到性能不佳、误报、漏报等让人挠头的错误,本书对于如何使用正则表达式来解决一些常见的问题给出了按部就班的解决方案,其中包括c#、Java、JavaScript、Perl、PHP、Python、Ruby和VB...
许多语言,包括Perl、PHP、Python、JavaScript和JScript,都支持用正则表达式处理文本,一些文本编辑器用正则表达式实现高级“搜索-替换”功能。那么Java又怎样呢?本文写作时,一个包含了用正则表达式进行文本处理...
全书分为三大部分:第一部分主要讲解正则表达式的基础知识,涵盖了常见正则表达式中的各种功能和结构;第二部分主要讲解关于正则表达式的更深入的知识,详细探讨了编码问题、匹配原理、解题思路;第三部分将之前介绍...
对于如何使用正则表达式来解决性能不佳、误报、漏报等常见的错误以及完成一些常见的任务,本书给出了涉及基于C#、Java、JavaScript、Perl、PHP、Python、Ruby和VB.NET等编程语言的解决方案。 本书的读者对象是对...
正则表达式的精华和例子 里面有js正则表达式、还有java正则的例子
许多语言,包括Perl、PHP、Python、JavaScript和JScript,都支持用正则表达式处理文本,一些文本编辑器用正则表达式实现高级“搜索-替换”功能。那么Java又怎样呢?本文写作时,一个包含了用正则表达式进行文本处理...
JavaScript的正则表达式高清教程,详细讲解正则表达式
贪婪、非贪婪与回溯PHP正则表达式的效率 回溯与固化分组正则表达式之回溯AS3 js正则表达式 反向引用(backreference)详解JavaScript正则表达式之分组匹配及反向引用php正则表达式的模式修正符和逆向引用使用介绍PHP...