[英]Match a regular expression, then remove a subset of that regular expression
我正在使用javascript解析一些字符串。
我有一些看起来像这样的字符串:
1234 1/2 Old Town Alexandria
我写了一个正则表达式来标识实例,其中实例在街道号之后:
var addressFractionRegex = /^\d*\s+(1[/]\d)\s+/i;
我想做的是仅在整个正则表达式都匹配的情况下才从源字符串中删除正则表达式的小数部分(即:小数前面带有街道编号)。 在这种情况下,我最终将(删除“ 1/2”):
1234 Old Town Alexandria
我还想将删除的部分保存到另一个变量中。 因此,理想情况下,我最终会得到以下结果:
var street_address = '1234 Old Town Alexandria';
var fraction = '1/2';
如何在javascript中完成?
谢谢!
replace
函数接受一个替换字符串。 您可以将要保留的所有内容归为一组,并忽略要取出的任何内容。 在这里,我们保留子模式1和3,并保留存储在2中的分数。
var addressFractionRegex = /^(\d*\s+)(1[/]\d)(\s+)/i;
var data = '123 1/5 abc';
alert(data.replace(addressFractionRegex, '$1$3'));
您只能捕获要保留的位:
"1234 1/2 Old Town Alexandria".replace(/^(\d*\s+)1\/\d\s/, '$1');
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.