7

我已经搜索和搜索并尝试了许多不同的方法,但我似乎无法弄清楚这一点。我正在寻找一种只允许字母数字字符,然后只有一个空格,然后是字母数字字符的方法。我敢肯定这很容易,但我不知道。

我想要的例子:

    第一个最后允许
    第一个最后一个不允许
    FirstLast 不允许
    第一个 最后一个 不允许
    First La'st 不允许

然后我想从字符串中删除无效字符。

如果您需要更多信息,请告诉我。非常感谢!

4

6 回答 6

13
^[a-zA-Z0-9]+ [a-zA-Z0-9]+$

……应该这样做。

于 2012-06-28T21:04:25.383 回答
6

这应该这样做:

^[0-9a-zA-Z]+ [0-9a-zA-Z]+$

演示:http: //jsfiddle.net/5m6RH/

于 2012-06-28T21:04:18.300 回答
5

使用这个正则表达式:

^[\p{L}\d]+ [\p{L}\d]+$
于 2012-06-28T21:08:13.153 回答
1

我相信你不想要名称中的数字,你正在寻找这个正则表达式:

^\p{L}+ \p{L}+$

或者

^\p{L}+\s\p{L}+$

where\p{L}+匹配一个或多个“字母”字符,因此不仅是a-zand A-Z,还有其他语言的字符。例如,埃莉斯·威尔逊


如果你真的只想要字母数字字符,输入应该有两个部分,中间有一个空格;并且必须删除无效字符,然后:

  1. [^\s\dA-Za-z]+用空字符串替换所有匹配项,
  2. 通过替换^\s*为空字符串来修剪前导空格,
  3. 通过替换\s*$为空字符串来修剪尾随空格,以及
  4. 使用正则表达式检查/验证此类字符串^[\da-zA-Z]+ [\da-zA-Z]+$

要从字符串中排除数字,请\d从上述模式中删除。

要允许更长的空间,而不仅仅是一个空格字符,请在第一个模式中添加+空格字符或在第二个模式后面添加空格字符\s

于 2012-06-28T23:00:50.080 回答
0

这应该工作

(?i)\b[a-z\d]+ [a-z\d]+\b
于 2012-06-28T22:30:57.823 回答
0

这对于字母数字非常有效,如果适用,它们之间只有一个空格

    @"^[a-zA-Z0-9]+([ ]{0,1}[a-zA-Z0-9]+)*$"

它将允许类似的值

    anand
    anand dev
    anand123 
    anand123 dev
    123anand
    123anand dev123
    my user name is anand123
    anand123  dev               **Not allowed due to multiple space**
     anand dev                  **not allowed due to space at begining**

希望这会帮助你。谢谢。

于 2014-08-11T07:56:22.357 回答