Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我将使用什么正则表达式来检索此字符串后面的数字?_Javascript_Regex - Fatal编程技术网

Javascript 我将使用什么正则表达式来检索此字符串后面的数字?

Javascript 我将使用什么正则表达式来检索此字符串后面的数字?,javascript,regex,Javascript,Regex,我使用jQuery来检索class属性,我需要获取子字符串位置后面的数字的a子字符串 比如说 已选择位置7我需要检索位置7 比如说 已选择navitem位置14我需要检索14 我开始写: $(this).attr('class').match(/(\d+)$/)) 但是正则表达式让我迷路了,非常感谢您的帮助。 我真的很喜欢正则表达式,但我还在学习 由于第一个答案而更新:可能还有另一组数字需要忽略 例如,选择navitem2位置14我需要检索14您可以替换不是数字的所有内容 str.replac

我使用jQuery来检索class属性,我需要获取子字符串位置后面的数字的a子字符串

比如说 已选择位置7我需要检索位置7

比如说 已选择navitem位置14我需要检索14

我开始写:

$(this).attr('class').match(/(\d+)$/))
但是正则表达式让我迷路了,非常感谢您的帮助。 我真的很喜欢正则表达式,但我还在学习

由于第一个答案而更新:可能还有另一组数字需要忽略
例如,选择navitem2位置14我需要检索14

您可以替换不是数字的所有内容

str.replace(/\D/g,"");
如果字符串中存在其他数字,您仍然可以使用replace

str.replace(/^.*position(\d+).*$/,"$1");
但是,您可能希望在其他答案中使用其他正则表达式之一

  var r = "aaa 1 bb 2 position 113 dd".match(/position\s*(\d+)/)
  if (r instanceof Array )
      return r.pop()
调用返回[position14,14],因此[1]元素是14


如果使用\d+,则它将匹配一组连续的数字。这只是说,仅当它直接跟随文本字符串位置时才匹配该组。

您的尝试有两个问题。第一个是使用$将其锚定到字符串的末尾。因此,它不会在位置后给你数字,而是在字符串的末尾给你数字。同时你根本不提职位。您需要的是:

var matches = str.match(/position(\d+)/);
现在比赛就要开始了


如果你真的对学习正则表达式感兴趣,你应该仔细阅读,如果类中有另一组数字,而我在紧跟其后的数字后面,你会有什么反应?例如,选择navitem2位置14我需要检索14@PrimeLens好的一点,我已经提供了替代答案,尽管我不能使用其他已经给出的答案。不想成为一个抄袭者:
var matches = str.match(/position(\d+)/);
["position14", "14"]