当粘贴到文本输入正则表达式中的多行文本与空格不匹配时

本文关键字:文本 空格 不匹配 输入 正则表达式 | 更新日期: 2023-09-27 18:21:52

当用户粘贴类似以下内容时(例如从记事本(:

multi
line@email.com

进入输入文本框,换行符消失,如下所示:

多line@email.com

但是无论换行符转换为什么,都与此正则表达式不匹配:'''s|''t|''r|'|''0','i'因此,这个无效字符通过 js 验证传递到我正在处理的 .NET 应用程序代码。这很有趣,但是这个文本编辑器执行相同的转换,这就是为什么我必须将原始示例作为代码发布的原因。我想找出换行符转换为什么,所以我可以在正则表达式中添加文字,但我不知道如何。非常感谢!

以下是整个片段:

var invalidChars = new RegExp('(^[.])|[<]|[>]|[(]|[)]|[']|[,]|[;]|[:]|([.])[.]|'s|'t|'r|'n|'0', 'i');
if (text.match(invalidChars)) {
       return false;
}

当粘贴到文本输入正则表达式中的多行文本与空格不匹配时

眼前的问题是逃跑。 你正在使用字符串文本来创建正则表达式,如下所示:

'(^[.])|[<]|[>]|[(]|[)]|[']|[,]|[;]|[:]|([.])[.]|'s|'t|'r|'n|'0'

但在它到达正则表达式构造函数之前,[']变得[]; 's变得s; '0变得0;和 't'r'n 将转换为它们所表示的字符(分别为制表符、回车符和换行符(。 如果您改用正则表达式文本,则不会发生这种情况,但您仍然必须转义反斜杠以匹配文本反斜杠。

您的正则表达式也有比它需要的更多的括号。 我认为这就是您要尝试的:

/^'.|'.'.|[<>()'',;:'s]/

匹配开头的点、两个连续的点或几个禁止字符之一,包括任何空格字符('s匹配任何空格字符,而不仅仅是空格(。

好的 - 这里是

vbCrLF

这就是粘贴换行符的转换方式。我添加了 (vbCrLF( 组,现在检测到这些空格。谢谢,丹1M

http://forums.asp.net/t/1183613.aspx?Multiline+Textbox+Input+not+showing+line+breaks+in+Repeater+Control