首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么时候是Apostrophe而不是Apostrophe -验证.Net / Javascript

什么时候是Apostrophe而不是Apostrophe -验证.Net / Javascript
EN

Stack Overflow用户
提问于 2009-09-21 11:38:38
回答 4查看 2.3K关注 0票数 4

我在.NET 2.0中有一个用于电子邮件的正则表达式验证器,它使用客户端验证(javascript)。

当前的表达式是"\w+(-+.'\w+)@\w+(-.\w+).\w+(-.\w+)“,它可以满足我的需要(至少我是这么想的)。

然而,当我将Outlook中的电子邮件地址复制/粘贴到forms文本字段时,我遇到了撇号问题。

Chris.O‘’Brian@romerandomdomain.com

如果我只在文本框中键入,您可以看到撇号是一个不同于get的字符。

‘vs’-但两者都是撇号

好的,我想,让我们把这个字符添加到验证字符串中,这样我就可以得到

\w+(-+)@\w+(-.\w+).\w+(-.\w+)

我将“特殊”撇号复制到验证表达式中,然后键入电子邮件并使用相同的剪贴板项粘贴撇号,但验证仍然失败。

在文件后面的.net代码中,撇号看起来与.net表单不一样,而且由于验证仍然失败,我假定它被认为是一个不同的字符,因为.cs源文件的某种编码?

这听起来可信吗,其他人也遇到过同样的问题吗?

谢谢

EN

回答 4

Stack Overflow用户

发布于 2009-09-21 11:45:21

您应该在(-+.‘\w+)之后添加一个'+’,以便允许多组‘word’。你给出的表达式只允许两个单词,而你有三个词: Chris,O,Brian。

希望这能让事情更清楚。

票数 1
EN

Stack Overflow用户

发布于 2009-09-21 11:46:25

像Outlook这样的东西会有使用“智能引号”的倾向

下面是一些背景信息

票数 1
EN

Stack Overflow用户

发布于 2009-09-21 13:00:16

如果您只是将’ (U+2019 RIGHT SINGLE QUOTATION MARK)粘贴到您的文档中,但它没有工作,这意味着您的文档不使用unicode。

当您将文件编码并以UTF-8的形式发送时(例如),它可以正常工作,无需进一步修改。否则,您必须通过\u2019转义它,它也适用于JavaScript的正则表达式:

代码语言:javascript
复制
"\w+([-+.'\u2019]\w+)@\w+([-.]\w+).\w+([-.]\w+)"
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1454101

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档