使用正则表达式从特殊字符前后的字符串中获取数字

时间:2014-07-16 09:11:14

标签: javascript arrays regex

我有一个字符串 5|10|20|200|300 我希望|之前的第一个数字和|之后的最后一个数字是5和300.

我如何在javascript中使用正则表达式来返回这些数字?

4 个答案:

答案 0 :(得分:7)

这个最简单的正则表达式将返回两个匹配5300

^\d+|\d+$

查看the demo中的匹配项。

在JS中:

result = yourString.match(/^\d+|\d+$/g);

<强>解释

  • ^\d+匹配字符串的开头和一些数字(5
  • |
  • \d+$匹配某些数字和字符串的结尾

答案 1 :(得分:5)

JavaScript仅保留(...)+的最后一次捕获,因此您可以编写

var m = "5|10|20|200|300".match(/(\d+)(\|(\d+))+/);

然后m[1]"5"m[3]"300"

答案 2 :(得分:1)

使用split()方法

将字符串转换为数组
var str="5|10|20|200|300";
var res_array = str.split("|");

现在获取数组的第一个和最后一个值:::

alert("First value is"+ res_array[0]);
alert("Last value is"+ res_array[arr.length - 1]);

答案 3 :(得分:0)

var string = '5|10|20|200|300';
var array = string.split('|');
 //array[0] = '5';
 //array[array.length-1] = '300';

我知道这不是正则表达式,但在大多数情况下,我总能发现拆分更容易。