日期:2014-05-16  浏览次数:20378 次

一个正则表达式断言在javascript中的问题
(?<![\-\(\)])aaa
为什么这个在c#中能用,在js中报错?
报错信息是

Error: Syntax error in regular expression

全部的代码:
<script >
function test2(){  
  var text2Value=document.getElementById("text1").value;  

var test2 = /(?<![\-\(\)])aaa/
  if(test2.test(text2Value)){  
  alert("true");  
  }else{  
  alert("false");  
  }  
  }  
  </script>
  <input type="text" id="text1" name ="text1" value=""/>  
  </br>  
  <input type="button" id="button1" name ="button1" value="button1" onclick="test2()" />

请问我在javascript中应该如何写才能顺利使用?谢谢各位



------解决方案--------------------

JS不支持以下两项
? <!
?<=







------解决方案--------------------
/^[^-]aaa/
------解决方案--------------------
var reg = new RegExp("([^\-\(\)])*aaa", "i"); 
if(test2.test(reg))
{
alert(RegExp.$1)
}

------解决方案--------------------
23-32-32-32 
[^\-]已经占了一个了,后面接下来的[\d]只有一个,没2个了
^[^\-][\d]{2}\-[\d]{2}\-[\d]{2}\-[\d]{2}$
[^\-]第一个不是-,是2,ok
然后3-匹配[\d]{2}时出错