我似乎无法解决这个问题,而且我没有使用正则表达式的经验 - 在这种情况下是否需要这样做?
我的js程序中有一个字符串,如下所示:
192.158.21.10:1234
或abcd123der2:12345
我需要验证此字符串是否包含:
及其后的数字
如果是,则程序继续,如果不是,则抛出错误告诉用户输入有效字符串。
192.158.21.10:1234 -- Continue (validation successful)
192.158.21.10 -- Fail (incorrect input)
我知道这是一个简单的想法,但我一直在努力解决这个问题。
答案 0 :(得分:2)
^
- 开始参赛
.+
- 至少一个字符/数字
:
- 匹配分号
\d+
- 至少一个号码
$
- 条目结束
var regex = /^.+:\d+$/;
console.log(regex.test("abcd123der2:12345")); //true
console.log(regex.test("192.158.21.10:123")); //true
console.log(regex.test("192.158.21.10:aa")); //false
console.log(regex.test("192.158.21.10123")); //false
console.log(regex.test(":123")); //false
console.log(regex.test("test:1morething")); //false

答案 1 :(得分:1)
我不会说正则表达式是"需要"从某种意义上说,有多种方法可以执行检查。我会说正则表达式可能是最简单的方法,但它可能是也可能不是最有效的方法(如果这是一个测试效率应该重要的情况)。
无论如何,:\d+$
是一个可以做你想要的正则表达式;它匹配一个冒号,后跟一个或多个数字,后跟字符串的结尾。