PHP preg_match()正则表达式模式与空白匹配问题


PHP preg_match() regular expression pattern match issues with whitespace

当使用preg_match()检查输入时,我在Firefox中得到了无效字符的匹配,但在Chrome中没有。当用户键入类似This comment的内容时,基本上是带有空格的内容,但如果他们在提交到服务器和preg_match check之前键入Thiscomment,他们会在单词之间添加空格,这就可以了。

使用模式/^[a-zA-Z0-9 's'.'-]*$/并尝试了only和without,但仍然没有运气。

内容/文本来自Angular管理的contentEditable表单元格。

php 5.6firefox/chrome最新角度1.5

进一步的挖掘表明,firefox正在插入&lt;br&gt;,基本上是<br>,一旦插入,删除已添加的内容并不会删除它。因此,我正在尝试在运行regex验证之前将其剥离。

好吧,所以我需要更多的挖掘和意识到,我需要弄清楚如何管理这一点,因为当向文本中添加新行时,chrome也会插入字符,比如我想要支持的shift return。只需管理如何存储,'n&lt;br&gt;<br>,并管理何时输出到文本、警报或表格单元格等。

感谢所有观看并发表评论的人。抱歉有噪音。

我现在要关闭此票证,或者如果无法关闭则删除,我希望不删除以节省其他人的时间,但不确定如何执行此操作。

因此,现在显而易见的基本问题是,浏览器需要插入一些东西来处理换行符和新行,以支持该输入功能。Firefox有点奇怪/咄咄逼人,但这并不重要,因为我是否想支持用户在文本中添加新行,这需要从所有浏览器中处理。

解决方案是弄清楚如何将其管理为chrome,并且任何浏览器在向文本添加新行时也会插入字符,比如我想要支持的shiftreturn。只需要管理如何存储,''n或<br>或
输出到文本、警报或表格单元格等时进行AND管理。

因此,我所做的是在表单元格上使用style="white-space: pre;",它会像在警报或文本区域中一样呈现'n。从angularjs换行过滤器获得解决方案,没有其他html