如何在新行中使用preg_match

时间:2016-02-17 05:06:51

标签: php

我使用以下代码阻止人们输入preg_match以外的字符:

if (!preg_match("/^[a-zA-Z0-9 ]*$/",$input)) {
    $error = "Error";
}

它只允许:

  • A to Z
  • 0到9
  • (空格)

但是,如果人们点击ENTER。数据无法发送。我如何更改代码?

3 个答案:

答案 0 :(得分:1)

您可以在preg_match中使用\ r \ n作为输入或新行。

if (!preg_match("/^[a-zA-Z0-9 \r\n]*$/",$input)) {
    $error = "Error";
}

答案 1 :(得分:0)

试试这个

&[^a-zA-Z0-9\s]&

\ s应找到任何类型的空格,包括换行符和空格。如果你只想要空格和换行符(不是制表符或其他空格),你可以改为/^[a-zA-Z0-9 ]*$/

答案 2 :(得分:0)

我认为上述情况会很好......但如果失败了你可以试试这个:

if (!preg_match("/(?!\n)^[a-zA-Z0-9\s]*$/",$input)) {
    $error = "Error";
}

(?!\ n)负向前看将阻止\ n出现在字符串中..