diff --git a/core/src/com/google/zxing/client/result/URIResultParser.java b/core/src/com/google/zxing/client/result/URIResultParser.java index 7b70fd13b..56839822a 100644 --- a/core/src/com/google/zxing/client/result/URIResultParser.java +++ b/core/src/com/google/zxing/client/result/URIResultParser.java @@ -28,10 +28,9 @@ import java.util.regex.Pattern; */ public final class URIResultParser extends ResultParser { - private static final String ALPHANUM_PART = "[a-zA-Z0-9\\-]"; private static final Pattern URL_WITH_PROTOCOL_PATTERN = Pattern.compile("[a-zA-Z0-9]{2,}:"); private static final Pattern URL_WITHOUT_PROTOCOL_PATTERN = Pattern.compile( - '(' + ALPHANUM_PART + "+\\.)+" + ALPHANUM_PART + "{2,}" + // host name elements + "([a-zA-Z0-9\\-]+\\.)+[a-zA-Z]{2,}" + // host name elements "(:\\d{1,5})?" + // maybe port "(/|\\?|$)"); // query, path or nothing diff --git a/core/test/src/com/google/zxing/client/result/URIParsedResultTestCase.java b/core/test/src/com/google/zxing/client/result/URIParsedResultTestCase.java index 1a9381196..bcbd3f23c 100644 --- a/core/test/src/com/google/zxing/client/result/URIParsedResultTestCase.java +++ b/core/test/src/com/google/zxing/client/result/URIParsedResultTestCase.java @@ -38,6 +38,7 @@ public final class URIParsedResultTestCase extends Assert { @Test public void testURI() { doTest("google.com", "http://google.com", null); + doTest("123.com", "http://123.com", null); doTest("http://google.com", "http://google.com", null); doTest("https://google.com", "https://google.com", null); doTest("google.com:443", "http://google.com:443", null); @@ -58,6 +59,8 @@ public final class URIParsedResultTestCase extends Assert { doTestNotUri(":80/"); doTestNotUri("ABC,20.3,AB,AD"); doTestNotUri("http://google.com?q=foo bar"); + doTestNotUri("12756.501"); + doTestNotUri("google.50"); } @Test