gpt4 book ai didi

javascript - 如何处理作为字符串返回的正则表达式?

转载 作者:行者123 更新时间:2023-11-30 15:00:19 25 4
gpt4 key购买 nike

请注意,我尝试了其他 SO 帖子中关于正则表达式的一些建议,但没有任何帮助!!!来到这个问题 -

我有这样的 JSON 数据(原始:https://api.myjson.com/bins/fvzpp):

{
VISA: {
cardPattern: "/^4/",
cardNumberLength: 16,
cvv: "required",
cvvLength: 3,
displayText: "Visa"
},
MASTERCARD: {
cardPattern: "/^5[1-5]/",
cardNumberLength: 16,
cvv: "required",
cvvLength: 3,
displayText: "Master"
},
MAESTRO: {
cardPattern:
"/^(50|63|66|5[6-8]|6[8-9]|600[0-9]|6010|601[2-9]|60[2-9]|61|620|621|6220|6221[0-1])/",
cardNumberLength: 19,
cvv: "optional",
cvvLength: 4,
displayText: "Maestro"
}
}

请查看字符串格式的 cardPattern 属性。我如何使用它来测试字符串(比如 445)。例如,“/^4/”.test(mystring) 不起作用。并且 var reg = new RegExp("/^4/") 返回一个奇怪的//^4//永远不会匹配 mystring。如何处理正则表达式的这种响应?更明确地说,如何处理 response['VISA'].cardPattern.test(4545) 应该有效,但没有!

此外,响应不是 JSON 格式,而是对象中的对象。解析此类响应的最佳方法是什么?我尝试了 for-in 循环,但返回的不是我想要的“VISA”、“MASTERCARD”和“MAESTRO”(字符串)。

最佳答案

您必须先使用 new RegExp() 构造函数来解析正则表达式。

但是,您必须去掉开头和结尾的斜线:

function parseCardPattern(cardPattern) {
return new RegExp(cardPattern.substr(1, cardPattern.length - 2));
}

您现在可以使用正则表达式对象进行测试:

const visaPattern = parseCardPattern(response['VISA'].cardPattern);
console.log(visaPattern.test('4242424242')); // => True

关于javascript - 如何处理作为字符串返回的正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46633090/

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