【问题标题】:PHP preg_match() regular expression pattern match issues with whitespacePHP preg_match() 正则表达式模式匹配问题与空格
【发布时间】:2016-08-01 16:41:33
【问题描述】:

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

使用模式/^[a-zA-Z0-9 \s\.\-]*$/ 并尝试过仅使用和不使用\s,但仍然没有运气。

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

php 5.6 火狐/铬最新 角度 1.5

更多的挖掘表明,Firefox 正在插入<br>,基本上是<br>,一旦在那里删除已添加的内容并不会删除它。所以我正在尝试在运行正则表达式验证之前将其剥离。

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

感谢所有观看并发表评论的人。抱歉打扰了。

我现在要关闭这张票,或者如果我无法关闭就删除,不想删除以节省其他人的时间,但不知道该怎么做。

【问题讨论】:

  • 如果你也应该添加\r\n
  • @BradKent 应该被\s覆盖。
  • 我对这里发生的事情有点困惑。 This commentThiscomment 都应该与 /^[a-zA-Z0-9 \s\.\-]*$/ 匹配我不确定我是否理解这个问题。

标签: php angularjs regex firefox


【解决方案1】:

所以基本的,现在很明显的问题是浏览器需要插入一些东西来处理换行符,新行,以支持该输入功能。 Firefox 对它有点奇怪/激进,但我想支持用户向需要从所有浏览器处理的文本添加新行的能力并不重要。

解决方案是弄清楚如何将其作为 chrome 进行管理,并且任何浏览器也会在文本中添加新行时插入字符,例如我想要支持的 shift-return。只需要管理如何存储、\n 或

并在输出到文本、警报或表格单元格等时进行管理。

所以我所做的是在表格单元格上使用style="white-space: pre;",它呈现\n,就像在警报或文本区域中一样。从angularjs newline filter with no other html得到解决方案

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    • 2018-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多