Javascript Replace函数无法使用regex
Javascript Replace function not working with regex
我有以下字符串:
@[A:B:C].[X:Y:Z].[P:Q:R] 1.C.3.s @[1:2:3].[2:0:0].[5dsh:cxcv:wew]
我想从中提取以下格式的子字符串:
@[anything here].[anything here].[anything here]
在上述情况下,输出子字符串应为:
@[A:B:C].[X:Y:Z].[P:Q:R]
@[1:2:3].[2:0:0].[5dsh:cxcv:wew]
我有一个匹配这些子字符串的正则表达式:
(@'w+|@(?:'[[^']]+']'.?)+)
为了测试这个正则表达式,我将在这个fiddle中用$
替换这些子字符串:http://jsfiddle.net/vfe50z0o/
正则表达式在Regex101演示中运行时没有问题:https://regex101.com/r/aH9nK5/1
但在JSFiddle上,它不起作用。
这是JavaScript代码:
function myFunction() {
var re = /(@'w+|@(?:'[[^']]+']'.?)+)/;
var str = 'wewe@[s].[s].[s]xvcv';
var subst = '$';
var result = str.replace(re, subst);
alert(result);
}
如果您正在处理这样的格式字符串,下面的regex可以完成这项工作:
(@?'[[^[]*']'.?){3}
演示
如果括号的数量可以大于或小于3,则可以使用+
:
(@?'[[^[]*']'.?)+
您可以使用此代码获取匹配项:
var re = /(@'w*(?:'[[^']]+']'.?)+)/g;
var str = '@[A:B:C].[X:Y:Z].[P:Q:R] 1.C.3.s @[1:2:3].[2:0:0].[5dsh:cxcv:wew]';
var m;
while ((m = re.exec(str)) !== null) {
if (m.index === re.lastIndex)
re.lastIndex++;
console.log(m[1]);
}
输出:
@[A:B:C].[X:Y:Z].[P:Q:R]
@[1:2:3].[2:0:0].[5dsh:cxcv:wew]
相关文章:
- Regex Replace仅适用于Last Match
- Javascript Regex Replace for url
- 如何在Java中实现与JavaScriptString.replace(RegEx,function)相同的功能
- 在javascript中使用regex和replace()替换数组元素
- 如何在jquery中使用replace和regex在单词的大写字符前插入空格
- JS-regex,我怎样才能把它变成一个 replace() 方法
- Regex-indexof-split和replace我应该如何正确应用它们
- 如果捕获组等于replace()中的某个值,我该如何检查regex替换
- Javascript Regex replace在IE10中不起作用
- Regex for Array.replace(/ ]/g, ']')?
- 如果选择使用regex/backreferences替换,或者使用split/replace
- String.replace(Regex) returns undefineds
- Javascript regex .replace() not working
- javascript regex replace html
- Javascript Regex (replace) Issue
- RegEx Javascript replace?
- Javascript Regex replace (remove) <标记在字符串的开头
- Jquery regex replace()只运行两次.然后不# 39;t
- 使用replace和regex从该字符串中删除字符
- Javascript Regex Replace - 不替换所有必需的字符串