Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 正则表达式匹配到"&&引用;或|&引用;_Javascript_Regex_Conditional Statements - Fatal编程技术网

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'",
        "&",
        ""
    ]
*/

警告一句:如果你要解析这个字符串,正则表达式是不行的。