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
在这里到底是如何工作的?我使用index0
进行了测试,它返回了整个字符串。另外,如果我保留g
修饰符,它也不会起作用。match
忽略捕获的组吗?@Liren:更多信息:match也可以返回nullmatch
在这里到底是如何工作的?我使用index0
进行了测试,它返回了整个字符串。另外,如果我保留g
修饰符,它也不会起作用。匹配吗
忽略捕获的群?@Liren:更多信息:@gurvinder372:然后添加一个守卫;这是概念证明,一个甚至没有变量的单行程序,显然不是用实际代码编写的方式。@gurvinder372:然后添加一个保护;这是概念的证明,一个甚至没有变量的单行程序,显然不是您在实际代码中编写它的方式。