仅在AngularJS中接受字母数字和1个点

时间:2014-09-13 12:45:09

标签: javascript regex angularjs codeigniter

我正在使用CodeIgniter(后端)和AngularJS(前端)创建应用。 如何在AngularJs中验证用户输入,只允许来自a-z-A-Z,数字和1个点的字符(只要不在字符串末尾的任何地方)?

/[^A-Za-z0-9\.]/就够了吗?

BTW,我的代码结构受到AngularJS docs这个简单例子的启发。 https://docs.angularjs.org/api/ng/input/input%5Btext%5D

UPDATE:

1 dot must not be the first/last character of the string and it must be optional.

1 个答案:

答案 0 :(得分:2)

根据我的理解:您要检查字符串是否仅由字母数字字符和最多一个点组成,不是位于字符串的末尾或字符串的开头。

您可以使用(参见demo here):

^[a-zA-Z0-9]+(?:\.[a-zA-Z0-9]+)?$

<强>解释

  • [a-zA-Z0-9]+:匹配所有领先的字母数字字符(至少一个)
  • (?:\.[a-zA-Z0-9]+)?:可选的非捕获组 - 我们匹配一个唯一的点,后跟最少的一个alphanum
  • ^$:匹配字符串开头和结尾的锚点,确保字符串仅由我们想要的组成