使用正则表达式在Javascript中提取值

时间:2016-12-14 14:15:40

标签: javascript regex

我的表格中有一个字符串:" xMyS"

我想使用Javascript Regex表达式提取x和y。

例如,如果字符串是

10M225S

我需要10和225。

此外,字符串可能没有x或y部分。例如,它可以只是225S或仅10M

编辑:我尝试了.match()之类的内容,但不知道如何以上述格式提取值。

编辑:我到目前为止尝试的正则表达式是/(\w+)M(\w+)S/,但它似乎仅适用于10M225S而不适用于10M225S

4 个答案:

答案 0 :(得分:1)

您可以使用.split()分割字符串:



cell.parent(tag_name: 'table') # equivalent to `cell.table(xpath: './ancestor::table')`




在这种情况下不需要正则表达式。

答案 1 :(得分:1)

您可以这样做:

var str = "10M255S"
var match = str.match(/^([0-9]*)M*([0-9]*)S*$/)

然后match[1]10match[2]255

如果var str = "10M",则match[1]10,如果var str = "255S",则match[1]255

在三种情况中的任何一种情况下,匹配从数组match的第二个元素开始。

希望这有帮助。

答案 2 :(得分:0)

如果模式永远不变,K-Gun的答案是有意义的,但如果'M'和'S'只是任意文本的占位符示例,那么使用RegExp / \ d + / g

<!DOCTYPE html>
<html>
<head>
  <script>
    function fn() {
      var re = /\d+/g, // match digits, globally
        str = '10M225S',
        result = [],
        temp;
      // process successive matches
      while ((temp = re.exec(str)) !== null)
        result.push(temp[0]);

      document.getElementById("result").innerText = result.toString();
    }
  </script>
</head>
<body onload="fn()">
  <h1 id="result"></h1>
</body>
</html>

这是展示代码的plunkr

RegExp re 将匹配数字运行。无论任何非数字字符如何,这都可以工作,例如它会匹配“10ZXZZ225FOZ”。

答案 3 :(得分:0)

var str = "10M255S"
var result = str.match(/([0-9])/g)

var value = []
result.map(res => {
  value += res
})
console.log(value)