我在javascript中有这样的字符串:
'nearly 2 pound/12345'
我需要检查这个字符串是否匹配
这样的模式'some string useless/number'
并获取号码。
我创建了一个正则表达式/\/\d+/g
来获取数字,但它也会得到字符' /'。
所以我该如何解决这些问题?
答案 0 :(得分:0)
如果你的表达只是“正斜杠后跟数字”,那就足够了
let numbers = (/\/(\d+)/.exec(str) || []).pop()
要分解......
为正斜杠创建一个正则表达式,后跟一个或多个数字(要捕获的数字)
let regex = /\/(\d+)/
您可能需要/需要调整它以使其更具体。比如说数字总是出现在字符串的末尾,你可以使用/\/(\d+)$/
。
Execute the regex against your string。这将返回null
表示不匹配,或者返回数组,其中整个匹配位于索引0,而您的捕获组位于索引1,例如["/12345", "12345]
regex.exec(str)
为数组创建一个表达式,即使没有匹配也是如此
let arr = (regex.exec(str) || [])
使用Array.prototype.pop
获取最后一个数组条目
let numbers = arr.pop()
numbers
将被定义。
答案 1 :(得分:0)
这样的事情应该做到这一点:
var position = input.lastIndexOf("/");
var number = input.substr(position+1);
它只是在字符串中找到最后一个“/”,然后将其后面的所有内容存储在一个名为number的变量中。