Javascript正则表达式-删除未捕获的组

Javascript正则表达式-删除未捕获的组,javascript,regex,Javascript,Regex,我想保留以下字符串中的20V,并删除所有其他内容: Range 20V 0.5A 我使用以下正则表达式捕获20V: /[^0123456789]*(\d+V).*/g 因此,在Javascript中,如何删除字符串中未捕获的所有内容?我尝试了这个,它删除了所有内容: var myString = "Range 20V 0.5A" var newString = myString.replace(/[^0123456789]*(\d+V).*/g, "") 如果可能的话,

我想保留以下字符串中的
20V
,并删除所有其他内容:

Range    20V    0.5A
我使用以下正则表达式捕获20V:

/[^0123456789]*(\d+V).*/g
因此,在Javascript中,如何删除字符串中未捕获的所有内容?我尝试了这个,它删除了所有内容:

var myString = "Range   20V   0.5A"
var newString = myString.replace(/[^0123456789]*(\d+V).*/g, "")
如果可能的话,请推荐一个更好的正则表达式,我觉得
[^0123456789]
非常愚蠢。

您可以使用。然后您可以使用
$1

var myString=“范围20V 0.5A”
var newString=myString.replace(/\D*(\D+V)。*/g,“$1”)
console.log(新闻字符串)您可以使用。然后您可以使用
$1

var myString=“范围20V 0.5A”
var newString=myString.replace(/\D*(\D+V)。*/g,“$1”)

console.log(新闻字符串)为什么要删除除所需子字符串以外的所有内容,而不是直接捕获所需子字符串

"Range   20V   0.5A".match(/\d+V/)[0]
// => "20V"

为什么要删除除所需子字符串以外的所有内容,而不是直接捕获所需子字符串

"Range   20V   0.5A".match(/\d+V/)[0]
// => "20V"

你就快到了,只需改变两件事

1) 将正则表达式更改为

/\d+V/g
2) 并使用
匹配
,然后使用
加入
,而不是
替换

演示

var myString=“范围20V 0.5A”
var matches=myString.match(/\d+V/g);
var finalOutput=匹配项?匹配。join():“”;

警报(最终输出)您的代码就快到了,只需更改两件事

1) 将正则表达式更改为

/\d+V/g
2) 并使用
匹配
,然后使用
加入
,而不是
替换

演示

var myString=“范围20V 0.5A”
var matches=myString.match(/\d+V/g);
var finalOutput=匹配项?匹配。join():“”;

警报(最终输出)
\D
=
[^0123456789]
@PranavCBalan噢,谢谢:P我其实不知道,我只是浏览了一整套在线互动教程,显然他们错过了
\D
var newString=myString.replace(/.*?(/.*)(\D+V)。*/g.””)
\D
=
[^0123456789]
@PranavCBalan哦,谢谢:P我其实不知道,我只是浏览了一整套在线互动教程,显然他们错过了
\D
var newString=myString.replace(/.*(\D+V).*/g,“”
match也可以返回null,
match
在这里到底是如何工作的?我使用index
0
进行了测试,它返回了整个字符串。另外,如果我保留
g
修饰符,它也不会起作用。
match
忽略捕获的组吗?@Liren:更多信息:match也可以返回null
match
在这里到底是如何工作的?我使用index
0
进行了测试,它返回了整个字符串。另外,如果我保留
g
修饰符,它也不会起作用。
匹配吗
忽略捕获的群?@Liren:更多信息:@gurvinder372:然后添加一个守卫;这是概念证明,一个甚至没有变量的单行程序,显然不是用实际代码编写的方式。@gurvinder372:然后添加一个保护;这是概念的证明,一个甚至没有变量的单行程序,显然不是您在实际代码中编写它的方式。