`

java和javascript的正则表达式有点不同

 
阅读更多

    今天在项目中遇到一个情况,正则表达式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里面要这么写?
分享到:
评论

相关推荐

    Java使用正则表达式提取XML节点内容的方法示例

    1. JavaScript正则表达式在线测试工具:http://tools.jb51.net/regex/javascript 2. 正则表达式在线生成工具:http://tools.jb51.net/regex/create_reg 这些工具可以帮助开发者快速测试和生成正则表达式,从而提高...

    java \javascript 正则表达式

    正则表达式是一种强大的文本处理工具,用于在Java和JavaScript中进行字符串匹配、搜索、替换等操作。在编程中,正则表达式是处理文本数据不可或缺的一部分,它们使用特殊的字符序列来定义一个模式,该模式可以用来...

    常用java正则表达式

    多种编程语言,包括Perl、PHP、Python、JavaScript以及Java等均内置了对正则表达式的支持。本文将详细介绍Java中正则表达式的使用方法,并通过Jakarta-ORO库来演示具体的实现过程。 #### 二、正则表达式基础知识 #...

    Java正则表达式.ppt

    随着时间的推移,正则表达式成为了多种编程语言和文本编辑器的标准功能,如Perl、PHP、Python、JavaScript和Java等。 Java正则表达式虽然与其他语言的正则表达式有相似之处,但它们并不完全相同,有自己的语法和...

    javaScript 正则表达式详解

    JavaScript 正则表达式详解 JavaScript 中的正则表达式是指使用特殊字符来描述字符串模式的表达式。...JavaScript 中的正则表达式提供了强大的字符串匹配和操作能力,广泛应用于字符串处理和数据验证等领域。

    正则表达式判断密码强度

    在Web应用开发中,例如"WebApplication2"这样的项目,可以利用前端验证(如JavaScript)和后端验证(如服务器端语言如Java、Python等)双重校验密码强度,以提供更高的安全性。前端验证可以即时反馈给用户,而后端...

    java/Android 正则表达式详解

    许多语言,包括 Perl、PHP、Python、JavaScript 和 JScript,都支持用正则表达式处理文本。 句点符号 --------- 句点符号“.”是正则表达式中最基本的元字符之一,它匹配所有字符,包括空格、Tab 字符甚至换行符。...

    只验证数字和字母的正则表达式

    1. **兼容性**:确保所使用的正则表达式在不同的编程语言或环境中都能正常工作。 2. **安全性**:虽然该正则表达式能有效过滤非法字符,但在实际应用中还需结合其他安全措施来进一步增强系统的安全性。 3. **用户...

    适合于js和java的正则表达式

    "JS正则表达式大全.doc"可能包含JavaScript正则表达式的全面指南,包括所有可用的特性和常见应用场景;"zzbds.txt"可能是某个特定的正则表达式示例或测试数据集,用于实践和学习。 通过学习和熟练掌握这些知识点,...

    java使用正则表达式判断手机号的方法示例

    7. 正则表达式在线测试工具:文章中也提供了两个在线测试工具,一个是JavaScript正则表达式在线测试工具,另一个是正则表达式在线生成工具,这两个工具可以帮助开发者测试和生成正则表达式。 8. java正则表达式技巧...

    Java JS正则表达式大全

    **Java与JavaScript正则表达式详解** 在编程领域,正则表达式(Regular Expression)是一种强大的文本处理工具,尤其在处理字符串匹配、查找、替换和提取等任务时,它的功能尤为强大。Java和JavaScript虽然源自不同...

    正则表达式必知必会v_1.0.pdf

    正则表达式的语法比较容易理解,但学习正则表达式的主要困难在于如何灵活运用这些规则来达到查找和替换的目的。 匹配单个字符 在正则表达式中,可以使用句点(.)来匹配任意单个字符。句点在正则表达式中被称为元...

    JavaScript常用正则表达式

    正则表达式在JavaScript中的应用非常广泛,熟练掌握其语法和常用模式对于提高代码的健壮性和效率至关重要。通过不断实践和学习,开发者可以创建出更复杂的正则表达式,以应对各种数据验证和文本处理的需求。

    精通正则表达式(第三版)简体中文版

    《精通正则表达式(第三版)简体中文版》是一本全面介绍正则表达式技术的书籍,不仅覆盖了基本语法和高级特性,还详细讲解了在不同编程环境下的具体应用方法。对于想要深入学习并掌握正则表达式技术的读者来说,本书...

    Java正则表达式详解.pdf

    根据提供的文件信息,本文将详细介绍Java正则表达式的概念、基本语法及应用场景,并结合Jakarta-ORO库来展示如何在Java中应用正则表达式。 ### 一、正则表达式简介 #### 1.1 什么是正则表达式? 正则表达式是一种...

    通过正则表达式生成数据

    2. **利用编程语言**:大多数编程语言如Python、Java、JavaScript等都内置了正则表达式的支持,并提供了方法来生成符合正则表达式的随机字符串。例如,Python的`re`模块配合`random.choice`或`random.choices`可以...

    三目运算符+正则表达式

    在编程世界中,三目运算符和正则表达式是两个非常重要的概念,它们各自扮演着独特的角色,同时也常被结合起来使用,以提高代码的简洁性和效率。让我们深入探讨这两个主题。 首先,三目运算符,也称为条件运算符,是...

    正则表达式.doc 正则表达式

    正则表达式在多种编程语言和工具中被广泛支持,包括Java、Perl、PHP、Python、JavaScript和JScript等。 在Java中,虽然标准API在某些版本中才正式引入正则表达式,但可以通过Apache的Jakarta-ORO库来提前使用相关...

Global site tag (gtag.js) - Google Analytics