gpt4 book ai didi

javascript - 为什么当输入包含换行符时正则表达式会失败?

转载 作者:行者123 更新时间:2023-11-29 17:25:41 26 4
gpt4 key购买 nike

我从另一个开发人员那里继承了这个 javascript 正则表达式,现在,即使什么都没有改变,它似乎与所需的文本不匹配。这是正则表达式:

/^.*(already (active|exists|registered)).*$/i

我需要它来匹配任何看起来像

的文本

stuff stuff already exists more stuff etc

它在我看来非常好,它只同时查找这两个词,理论上应该忽略字符串的其余部分。在我的脚本中,我检查这样的文本

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>

我错过了什么吗?这可能是什么问题?

最佳答案

这是一个应该处理换行符的简化但功能等效的正则表达式:

/(already\s+(active|exists|registered))/i

不确定为什么要以 ^.* 开头或以 .*$ 结尾,除非您的目标是专门防止换行。否则就是多余的。

编辑: 我用 \s+ 替换了空格,这样它可以更自由地处理空格(例如一个空格、两个空格、一个制表符等)。应该都匹配)。

关于javascript - 为什么当输入包含换行符时正则表达式会失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9027022/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com