我正在使用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.
答案 0 :(得分:2)
根据我的理解:您要检查字符串是否仅由字母数字字符和最多一个点组成,不是位于字符串的末尾或字符串的开头。
您可以使用(参见demo here):
^[a-zA-Z0-9]+(?:\.[a-zA-Z0-9]+)?$
<强>解释强>
[a-zA-Z0-9]+
:匹配所有领先的字母数字字符(至少一个)(?:\.[a-zA-Z0-9]+)?
:可选的非捕获组 - 我们匹配一个唯一的点,后跟最少的一个alphanum ^$
:匹配字符串开头和结尾的锚点,确保字符串仅由我们想要的组成