繁体   English   中英

如何正确转义单引号?

[英]How to properly escape a single quote?

我使用以下正则表达式来验证电子邮件地址:

var content = /^([\w._+-]|(<?))+[a-zA-Z0-9]@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9\_]+\.)+[a-zA-Z0-9-_.]{1,}))$/;

我需要在@符号前允许' ,所以根据这个答案,我将正则表达式更新为:

var content = /^([\w._+-/\']|(<?))+[a-zA-Z0-9]@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9\_]+\.)+[a-zA-Z0-9-_.]{1,}))$/;

注意在第一个捕获块中添加了/\\'

但是,我现在可以在不应该包含/保存数据。 如果我只是尝试在捕获块中添加一个' ,则会抛出'无效的正则表达式'错误。

如何在不使用正斜杠的情况下转义单引号字符?

编辑:对于评论中的讨论,这是一个屏幕截图:

在此处输入图片说明

第一个是Visual Studio错误

第二是Chrome调试器中的这一行

第三个是我跨过正则表达式创建时抛出的异常。

您无需在正则表达式文字中转义单引号。

您遇到的问题是-结束您的角色类。 如果将其放置在末尾,则它用作文字-在两个字符之间使用时会打开一个范围。

您当前试图打开之间的范围+/ ,其中包括,- 如果直接使用' ,则范围无效,因为'索引比+低。

要解决此问题,请转义减号\\-或再次将其移至末尾。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM