You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by ni...@apache.org on 2006/12/09 05:12:23 UTC
svn commit: r484909 - in /jakarta/commons/proper/validator/trunk/src:
share/org/apache/commons/validator/routines/RegexValidator.java
test/org/apache/commons/validator/routines/RegexValidatorTest.java
Author: niallp
Date: Fri Dec 8 20:12:21 2006
New Revision: 484909
URL: http://svn.apache.org/viewvc?view=rev&rev=484909
Log:
Don't create a StringBuffer for one group
Modified:
jakarta/commons/proper/validator/trunk/src/share/org/apache/commons/validator/routines/RegexValidator.java
jakarta/commons/proper/validator/trunk/src/test/org/apache/commons/validator/routines/RegexValidatorTest.java
Modified: jakarta/commons/proper/validator/trunk/src/share/org/apache/commons/validator/routines/RegexValidator.java
URL: http://svn.apache.org/viewvc/jakarta/commons/proper/validator/trunk/src/share/org/apache/commons/validator/routines/RegexValidator.java?view=diff&rev=484909&r1=484908&r2=484909
==============================================================================
--- jakarta/commons/proper/validator/trunk/src/share/org/apache/commons/validator/routines/RegexValidator.java (original)
+++ jakarta/commons/proper/validator/trunk/src/share/org/apache/commons/validator/routines/RegexValidator.java Fri Dec 8 20:12:21 2006
@@ -427,11 +427,15 @@
Matcher matcher = pattern.matcher(value);
if (matcher.matches()) {
int count = matcher.groupCount();
- StringBuffer buffer = new StringBuffer();
- for (int i = 0; i < count; i++) {
- buffer.append(matcher.group(i+1));
+ if (count == 1) {
+ return matcher.group(1);
+ } else {
+ StringBuffer buffer = new StringBuffer();
+ for (int i = 0; i < count; i++) {
+ buffer.append(matcher.group(i+1));
+ }
+ return buffer.toString();
}
- return buffer.toString();
} else {
return null;
}
Modified: jakarta/commons/proper/validator/trunk/src/test/org/apache/commons/validator/routines/RegexValidatorTest.java
URL: http://svn.apache.org/viewvc/jakarta/commons/proper/validator/trunk/src/test/org/apache/commons/validator/routines/RegexValidatorTest.java?view=diff&rev=484909&r1=484908&r2=484909
==============================================================================
--- jakarta/commons/proper/validator/trunk/src/test/org/apache/commons/validator/routines/RegexValidatorTest.java (original)
+++ jakarta/commons/proper/validator/trunk/src/test/org/apache/commons/validator/routines/RegexValidatorTest.java Fri Dec 8 20:12:21 2006
@@ -29,7 +29,7 @@
public class RegexValidatorTest extends TestCase {
private static final String MISSING_REGEX = "Regular Expression is missing";
- private static final String REGEX = "^([abc]*)(?:\\-)([DEF]*)(?:\\-)([123])*$";
+ private static final String REGEX = "^([abc]*)(?:\\-)([DEF]*)(?:\\-)([123]*)$";
private static final String COMPONENT_1 = "([abc]{3})";
private static final String COMPONENT_2 = "([DEF]{3})";
@@ -193,6 +193,15 @@
assertEquals("isValid() Invalid", false, multiple.isValid(value));
assertEquals("validate() Invalid", null, multiple.validate(value));
assertEquals("match() Multiple", null, multiple.match(value));
+ }
+
+ /**
+ * Test instance methods with multiple regular expressions.
+ */
+ public void testMatchOneGroup() {
+
+ assertEquals("validate()", "ABC", RegexValidator.validate("ABC", "^([A-Z]*)$"));
+ checkArray("match()", new String[] {"ABC"}, RegexValidator.match("ABC", "^([A-Z]*)$"));
}
/**
---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org