gpt4 book ai didi

javascript - 用单引号引起来时,正则表达式不起作用

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

我需要将正则表达式用引号括起来,以便我可以向其中添加另一个 javascript 变量,但这会阻止它工作。

这是工作示例...

var re = new RegExp(/^(0?[1-9]|[12][0-9]|3[01])[\/\-](0?[1-9]|1[012])[\/\-]\d{4}$/);

我最终想要实现的目标将是这样的(但经过修改以使其有效):

var re = new RegExp('^'+element.defaultValue+'|(0?[1-9]|[12][0-9]|3[01])[\/\-](0?[1-9]|1[012])[\/\-]\d{4}$');

这允许使用 DD/MM/YYYY 格式的日期或输入字段的默认值。

最佳答案

在字符串文字中,您需要转义所有反斜杠。例如,'\d'实际上只是字符串'd',因为Javascript解析器将反斜杠作为字符串转义序列的开头。 RegExp() 构造函数需要字符串中的实际反斜杠,因此您必须对它们进行转义:

 `'|(0?[1-9]|[12][0-9]|3[01])[\\/\\-](0?[1-9]|1[012])[\\/\\-]\\d{4}$'`

如果您尝试放入字符串中的默认值包含任何特殊字符,您也必须对它们进行转义。要么在 element.defaultValue 中转义它们,要么使用 this question 中的答案.

关于javascript - 用单引号引起来时,正则表达式不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11968122/

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