当粘贴到文本输入正则表达式中的多行文本与空格不匹配时
本文关键字:文本 空格 不匹配 输入 正则表达式 | 更新日期: 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