匹配正则表达式,然后删除该正则表达式的子集
Match a regular expression, then remove a subset of that regular expression
我正在使用javascript来解析一些字符串。
我有一些像这样的字符串:
<>之前1234/2亚历山大老城之前我写了一个正则表达式来识别街道号后面有分数的实例:
var addressFractionRegex = /^'d*'s+(1[/]'d)'s+/i;
我想做的是从源字符串中删除正则表达式的分数部分,只有在整个正则表达式匹配的情况下(即:分数前面有街道号码)。在这种情况下,我将以(删除"1/2")结束:
<>之前亚历山大老城1234号之前我还想保存我删除到另一个变量的部分。所以,理想情况下,我最终会像这样:
var street_address = '1234 Old Town Alexandria';
var fraction = '1/2';
如何在javascript中完成?
谢谢!
replace可以取一个函数:
var fraction;
var street_address = "1234 1/2 Old Town Alexandria".replace(/^'d*'s+(1[/]'d)'s+/i, function (match, capture) {
fraction = capture.trim();
return match.replace(capture,'')
});
fraction; // 1/2
street_address; // 1234 Old Town Alexndria
演示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');
相关文章:
- 问:使用正则表达式删除内容
- 正则表达式删除最后一个数字之后的字符串
- 使用正则表达式删除所有 html 属性(替换)
- 使用正则表达式删除标记时,Firefox和Chrome之间存在不一致
- 使用正则表达式删除网址参数
- 使用正则表达式删除段落开头和结尾的换行符
- 使用 Javascript 正则表达式删除字符后的所有内容
- Javascript 和正则表达式:删除除第一个字符之外的 evryting,如果是一个数字
- 正则表达式删除仅包含空子项的空 html 标记
- Javascript 正则表达式删除重复的空格和重复的空格 与此同时
- 正则表达式删除特定值的 x-href
- 正则表达式删除 - 除非前面有其他运算符
- 如何在 JavaScript 中使用正则表达式删除 .com,.org,.co.uk,.co.us
- 在 javascript 中使用正则表达式删除 html 标记
- JS 和正则表达式 - 删除括号前的逗号
- 我可以使用正则表达式删除列表项吗?
- 正则表达式删除语句
- 正则表达式删除所有白色景观,除了单词之间的一个
- 通过正则表达式删除符号
- 正则表达式删除换行符和内容之间的空格