正则表达式在开始或结束时没有空格,但允许中间的空格但也只允许一个char输入

时间:2014-04-09 11:38:29

标签: javascript php

我的RegExp

/^[A-Za-z ]*$/

然后我应该写什么不允许开始或结束时的空间,但允许中间的空间

5 个答案:

答案 0 :(得分:4)

此正则表达式将匹配符合原始表达式且在开头或结尾没有空格的任何字符串

^(?! )[A-Za-z ]*(?<! )$

答案 1 :(得分:3)

使用此模式匹配正则表达式

(?=(?:^\w))([A-Za-z ]+)(?<=[^ ])$

<强>演示

http://regex101.com/r/lM1aQ6

我建议您在php中使用trim()删除字符串开头和结尾的空格。

$hello  = " Hello World ";
trim($hello);

来自 PHP文档

  

trim - 从字符串的开头和结尾去掉空格(或其他字符)

答案 2 :(得分:2)

我可能会将问题分开:或者它根本不包含空格,或者它只包含在中间。

^[A-Za-z]*$|^[A-Za-z][A-Za-z ]*[A-Za-z]$

它会接受“aa”,“a”,“a ab c”,但不接受“”或“a”......

答案 3 :(得分:0)

我认为你需要这个:

<?php 
echo trim("  spaces and spaces    "); // outputs: "spaces and spaces"
?>

答案 4 :(得分:0)

我认为它适合你,

\b^([^\s]|[a-zA-Z])\s+[a-zA-Z]\b

这里,

  • \b 表示词边界。
  • ^\s 禁止空格。
  • |是一个替代

感谢分享。