Javascript正则表达式匹配并获取

时间:2016-06-07 04:00:18

标签: javascript regex

我在javascript中有这样的字符串:

'nearly 2 pound/12345'

我需要检查这个字符串是否匹配

这样的模式
'some string useless/number' 

并获取号码。

我创建了一个正则表达式/\/\d+/g来获取数字,但它也会得到字符' /'。

所以我该如何解决这些问题?

2 个答案:

答案 0 :(得分:0)

如果你的表达只是“正斜杠后跟数字”,那就足够了

let numbers = (/\/(\d+)/.exec(str) || []).pop()

要分解......

  1. 为正斜杠创建一个正则表达式,后跟一个或多个数字(要捕获的数字)

    let regex = /\/(\d+)/
    

    您可能需要/需要调整它以使其更具体。比如说数字总是出现在字符串的末尾,你可以使用/\/(\d+)$/

  2. Execute the regex against your string。这将返回null表示不匹配,或者返回数组,其中整个匹配位于索引0,而您的捕获组位于索引1,例如["/12345", "12345]

    regex.exec(str)
    
  3. 为数组创建一个表达式,即使没有匹配也是如此

    let arr = (regex.exec(str) || [])
    
  4. 使用Array.prototype.pop获取最后一个数组条目

    let numbers = arr.pop()
    
  5. 如果没有匹配,

    numbers将被定义。

答案 1 :(得分:0)

这样的事情应该做到这一点:

var position = input.lastIndexOf("/");
var number = input.substr(position+1);

它只是在字符串中找到最后一个“/”,然后将其后面的所有内容存储在一个名为number的变量中。