gpt4 book ai didi

javascript - 返回第一次出现的正则表达式不匹配

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

我有这样的代码https://jsfiddle.net/tgvtceg3/

var text = "abc(de192/+£,€.&";
var pattern = new RegExp(/^[0-9a-zA-Z\-\,+&.\/]+$/);
var res = pattern.test(text)
alert(res);

我希望代码返回在正则表达式中不匹配的第一次出现......例如在这种情况下我想要“(”

欢迎任何建议

最佳答案

您只能使用另一个正则表达式来检查使您之前的验证正则表达式无法匹配的文本。使用这样的东西:

var text = "abc(de192/+£,€.&";
var pattern = /^[0-9a-zA-Z,+&.\/-]+$/;
var res = pattern.test(text)
if (!res) {
var m=text.match(/[^0-9a-zA-Z,+&.\/-]+/) || [""];
console.log(m[0]);
}

/[^0-9a-zA-Z,+&.\/-]+/ 正则表达式将找到除原始正则表达式中定义的字符之外的第一个字符。

编辑:使用动态方法构建模式:

var text = "abc(de192/+£,€.&";
var block = "0-9a-zA-Z,+&./-"; // Define ranges/chars here
var pattern = new RegExp("^[" + block + "]+$"); // Use constructor notation to build the validation regex
var res = pattern.test(text)
if (!res) {
var m=text.match(new RegExp("[^" + block + "]+")) || [""];
console.log(m[0]);
}

关于javascript - 返回第一次出现的正则表达式不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42690309/

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