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

Javascript 使用正则表达式从特殊字符前后的字符串中获取数字,javascript,arrays,regex,Javascript,Arrays,Regex,我有一根像 5 | 10 | 20 | 200 | 300 我想得到前面的第一个数字和后面的最后一个数字,即5和300 如何在javascript中使用正则表达式返回这些数字 var string = '5|10|20|200|300'; var array = string.split('|'); //array[0] = '5'; //array[array.length-1] = '300'; 我知道它不是正则表达式,但我总是发现在大多数情况下使用split更容易。使用split()

我有一根像
5 | 10 | 20 | 200 | 300
我想得到
前面的第一个数字和
后面的最后一个数字,即5和300

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

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

我知道它不是正则表达式,但我总是发现在大多数情况下使用split更容易。

使用split()方法将字符串转换为数组

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

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

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

^\d+|\d+$
在中查看比赛

在JS中:

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

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

JavaScript只保留
(…)+
的最后一个捕获,因此您可以编写

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

那么
m[1]
“5”
m[3]
“300”

为什么不使用
.split(“|”)
?我想分别得到这两个数字,它返回的两个数字是在一个数组中的,只要得到结果[0]和结果[1]。:)如果字符串的格式为| 5 | 100 | 200,那么如何获取第一个数字如果表达式为| 5 | 10 | 20,那么如何从string@ShaheerAli
m[1]
,您试过了吗?经过一些更改后,我得到了想要的结果,谢谢您的帮助:)
var m = "5|10|20|200|300".match(/(\d+)(\|(\d+))+/);