假设我们有一个包含这些类的元素:“floatLeft item4”。
如果我想将数字“4”保存到“item4”中的变量中,我该怎么做?
我想我会使用这种模式 "/item(\d+)/" 但我是使用替换还是匹配以及如何使用?
假设我们有一个包含这些类的元素:“floatLeft item4”。
如果我想将数字“4”保存到“item4”中的变量中,我该怎么做?
我想我会使用这种模式 "/item(\d+)/" 但我是使用替换还是匹配以及如何使用?
var str = "item4",
num = (str.match(/item([0-9]+)/)||[])[1]; // if no match, `match` will return null therefore the `|| []` (or empty array).
console.log(num); // "4" (typeof num === "string")
console.log(+num) // 4 (typeof num === "number")
使用替换:
"floatLeft item4".replace(/.*item(\d+)/,"$1")
使用匹配:
"floatLeft item4".match(/item(\d+)/)[1]
exec(很像匹配)
/item(\d+)/.exec("floatLeft item4")[1]
使用拆分(再次,很像匹配):
"floatLeft item4".split(/item(\d+)/)[1]
尽管split
并非所有浏览器都支持该方法(例如 IE ..)
您可以像这样使用匹配:
var str = "item4",
num = +str.match(/item(\d+)/)[1]; // => 4
我用一元+
转换为一个数字。您可以改用parseInt
orNumber
构造函数。
您需要.match(..)
与捕获组一起使用。
"floatLeft item4".match(/item(\d+)/)
// Result: ["item4", "4"]