Flex - RegExp替换不能使用变量

时间:2013-05-24 22:24:30

标签: regex string flex variables replace

必须简单修复,但我无法看到我的生活中我做错了什么。

我在在线测试仪中测试了reg表达式并且它有效, 所以假设它是Flex依赖的问题。

这是我的代码和跟踪输出 - 只是在删除一个元素时尝试压缩字符串。

trace('Found Job To Delete:' + strJobToDelete);                         

strJobRegExp = "(" + strJobToDelete + "\\, )|(, " + strJobToDelete + ")|( " +  strJobToDelete + ")|(" + strJobToDelete + " )"
trace('Reg exp: ' + strJobRegExp);
findJobRegExp = new RegExp(strJobRegExp);                           
strJobNumList.replace(findJobRegExp, '');
trace('After Remove: ' + strJobNumList);

这是输出:

  

找到要删除的工作:0007-13

     

Reg exp:(0007-13 \,)|(,0007-13)|(0007-13)|(0007-13)

     

删除后:0007-13,0006-13

     

编辑后===>新工作:0007-13,0006-13

1 个答案:

答案 0 :(得分:0)

您与空格或空格和逗号匹配,但不是没有任何一个。

请尝试使用此模式:

" 0007-13(?!,)|, 0007-13|0007-13,? |0007-13"
strJobRegExp = " #(?!,)|, #|#,? |#".replace(/#/g, strJobToDelete);

(?!,)是一个负面的预测,并表示下一个位置一定不会有逗号。它不消耗角色。

<强>结果:

"0007-13"                     -> ""
"0007-13 0008-13"             -> "0008-13"
"0008-13 0007-13"             -> "0008-13"
"0007-13 0008-13 0009-13"     -> "0008-13 0009-13"
"0008-13 0007-13 0009-13"     -> "0008-13 0009-13"
"0008-13 0009-13 0007-13"     -> "0008-13 0009-13"
"0007-13, 0008-13"            -> "0008-13"
"0008-13, 0007-13"            -> "0008-13"
"0007-13, 0008-13, 0009-13"   -> "0008-13, 0009-13"
"0008-13, 0007-13, 0009-13"   -> "0008-13, 0009-13"
"0008-13, 0009-13, 0007-13"   -> "0008-13, 0009-13"
" 0007-13"                    -> ""
" 0007-13 0008-13"            -> " 0008-13"
" 0008-13 0007-13"            -> " 0008-13"
" 0007-13 0008-13 0009-13"    -> " 0008-13 0009-13"
" 0008-13 0007-13 0009-13"    -> " 0008-13 0009-13"
" 0008-13 0009-13 0007-13"    -> " 0008-13 0009-13"
" 0007-13, 0008-13"           -> " 0008-13"
" 0008-13, 0007-13"           -> " 0008-13"
" 0007-13, 0008-13, 0009-13"  -> " 0008-13, 0009-13"
" 0008-13, 0007-13, 0009-13"  -> " 0008-13, 0009-13"
" 0008-13, 0009-13, 0007-13"  -> " 0008-13, 0009-13"
"0007-13 "                    -> ""
"0007-13 0008-13 "            -> "0008-13 "
"0008-13 0007-13 "            -> "0008-13 "
"0007-13 0008-13 0009-13 "    -> "0008-13 0009-13 "
"0008-13 0007-13 0009-13 "    -> "0008-13 0009-13 "
"0008-13 0009-13 0007-13 "    -> "0008-13 0009-13 "
"0007-13, 0008-13 "           -> "0008-13 "
"0008-13, 0007-13 "           -> "0008-13 "
"0007-13, 0008-13, 0009-13 "  -> "0008-13, 0009-13 "
"0008-13, 0007-13, 0009-13 "  -> "0008-13, 0009-13 "
"0008-13, 0009-13, 0007-13 "  -> "0008-13, 0009-13 "
" 0007-13 "                   -> " "
" 0007-13 0008-13 "           -> " 0008-13 "
" 0008-13 0007-13 "           -> " 0008-13 "
" 0007-13 0008-13 0009-13 "   -> " 0008-13 0009-13 "
" 0008-13 0007-13 0009-13 "   -> " 0008-13 0009-13 "
" 0008-13 0009-13 0007-13 "   -> " 0008-13 0009-13 "
" 0007-13, 0008-13 "          -> " 0008-13 "
" 0008-13, 0007-13 "          -> " 0008-13 "
" 0007-13, 0008-13, 0009-13 " -> " 0008-13, 0009-13 "
" 0008-13, 0007-13, 0009-13 " -> " 0008-13, 0009-13 "
" 0008-13, 0009-13, 0007-13 " -> " 0008-13, 0009-13 "