Javascript 正则表达式匹配到"&&引用;或|&引用;
我有以下字符串Javascript 正则表达式匹配到"&&引用;或|&引用;,javascript,regex,conditional-statements,Javascript,Regex,Conditional Statements,我有以下字符串[Field1]='Field1Value'|[Field2]='Field2Value'和[Field3]='Field3Value',我想得到一个正则表达式匹配,直到“&”或“|”为止,但我还想在匹配中包含“&或” 这意味着我的字符串应该创建以下匹配项: 1. [Field1]='Field1Value' 2. | 3. [Field2]='Field2Value' 4. & 5. [Field3]='Field3Value' 我现在正在使用([^&^\\|]*)
[Field1]='Field1Value'|[Field2]='Field2Value'和[Field3]='Field3Value'
,我想得到一个正则表达式匹配,直到“&”
或“|”
为止,但我还想在匹配中包含“&
或”
这意味着我的字符串应该创建以下匹配项:
1. [Field1]='Field1Value'
2. |
3. [Field2]='Field2Value'
4. &
5. [Field3]='Field3Value'
我现在正在使用([^&^\\|]*)
,但问题是它返回:
1. [Field1]='Field1Value'
2. ''
3. [Field2]='Field2Value'
4. ''
5. [Field3]='Field3Value'
6. ''
您可以尝试下面的代码
> var s = "[Field1]='Field1Value'|[Field2]='Field2Value'&[Field3]='Field3Value'";
undefined
> s.match(/[^|&]+|[|&]/g)
[ '[Field1]=\'Field1Value\'',
'|',
'[Field2]=\'Field2Value\'',
'&',
'[Field3]=\'Field3Value\'' ]
说明:
匹配任何字符,但不匹配[^ |&]+
或
一次或多次&
或|
匹配[|&]
或
符号&
Split
在使用括号时可以返回分隔符:
var s = "[Field1]='Field1Value'|[Field2]='Field2Value'&";
s.split(/(\&|\|)/g);
/*
==> [
"[Field1]='Field1Value'",
"|",
"[Field2]='Field2Value'",
"&",
""
]
*/
警告一句:如果你要解析这个字符串,正则表达式是不行的。