我从另一个开发人员继承了这个JavaScript正则表达式,现在,即使没有任何变化,它似乎并不匹配所需的文本。下面是正则表达式:为什么在输入包含换行符时正则表达式失败?
/^.*(already (active|exists|registered)).*$/i
我需要它看起来像
东西的东西已经存在更多的东西的任何文本匹配等
它看起来完全没有给我,只一起查找这两个单词,理论上应该忽略字符串的其余部分。在我的剧本我检查这样
var cardUsedRE = /^.*(already (active|exists|registered)).*$/i;
if(cardUsedRE.test(responseText)){
mdiv.className = 'userError';
mdiv.innerHTML = 'The card # has already been registered';
document.getElementById('cardErrMsg').innerHTML = arrowGif;
文本}
我已经通过这个加强在Firebug,我已经看到了它无法检验这个字符串:
> Error: <detail>Card number already registered for CLP.\n</detail>
上午我遗漏了什么?这有什么可能的问题?
'.'不会默认匹配换行符。 “\ s +” – 2012-01-26 23:32:25
不确定是否相关,但它看起来像你的JavaScript有一个错字与mdiv.innerHTML = – JayC 2012-01-26 23:34:19
我也同意pst。我不知道为什么你甚至有^。*和。* $比特,除非这是一个提醒,当整个字符串需要匹配某些东西时,它会被锚定到开始和结束。 – JayC 2012-01-26 23:40:38