我想找到一个数字子串。此子字符串将以句点.
开头。
示例字符串:
myString = 12v3i$#@.789v10vvi4e9k
应该返回789
。
我的(非常hacky)解决方案:
.
我对正则表达式很新(假设这是正确的工具),如何用正则表达式完成?
答案 0 :(得分:2)
console.log(/\.(\d+)/.exec("12v3i$#@.789v10vvi4e9k")[1]);
# 789
\.
将与.
字符匹配(因为它在RegEx中具有特殊含义,我们需要将其转义为
\
),然后再增加1位数\d+
。我们只对这些数字进行分组,并使用[1]
答案 1 :(得分:2)
您可以使用
var match = myString.match(/\.(\d+)/);
这将返回数组,其中第一个元素是整个匹配,第二个元素包含第一个捕获组的值(即数字)。
我希望这个表达非常简单,但不过:
\.
字面上匹配.
(.
是表达式中的特殊字符,因此必须对其进行转义)\d+
匹配一个或多个数字答案 2 :(得分:2)
你可以这样做:
console.log("12v3i$#@.789v10vvi4e9k".match(/\.(\d+)/).pop());
\.
与文字.
和\d+
匹配或更多数字。