js regex从包含星号的字符串中提取字符串

Emm*_*myS 1 javascript regex

我有一个看起来像这样的字符串:

**********3600 - $20.00
Run Code Online (Sandbox Code Playgroud)

我需要从中提取3600.我不能专门搜索3600,因为字符串是动态的,我不能根据位置进行提取,因为字符串的开头可能有不同数量的星号.所以我需要一个在最后一个星号之后立即提取四个字符的正则表达式,但是我对正则表达式真的不是很好,因为星号是正则表达式中的保留字符,我不知道如何逃避它.有人可以帮忙吗?

nha*_*tdh 5

你可以这样做:

str.match(/^\**(\d+)/)
Run Code Online (Sandbox Code Playgroud)

结果(如果有)将位于返回数组的索引1中.您可能想要null在继续获取号码之前检查返回的结果是否存在.

假设

请注意,此解决方案假定字符串任意数量开头*(我允许数字从头开始的情况),然后是要提取的数字序列(至少一个数字).

说明

/^\**(\d+)/
Run Code Online (Sandbox Code Playgroud)
  • /在开头和结尾都是JavaScript文字的分隔符RegExp.
  • ^ 匹配字符串的开头
  • \*匹配文字*,因为*在正则表达式中有特殊含义.在*随后右后使其星号的0或多个实例相匹配*.
  • (\d+):\d匹配一个数字(从0到9),+意味着重复一次或多次.在()使一个捕获组,这样我们就可以提取由此正则表达式匹配(因为你可以看到上面,当你指的是返回的数组的索引1号)的内容.