RegEx模式只匹配某些字符

时间:2009-10-12 17:17:14

标签: javascript regex

我是RegEx的新手,这个特殊问题令我感到沮丧。这适用于JavaScript函数。

我需要验证输入,使其仅匹配此条件:

  • 字母A-Z(大写和小写)
  • 数字0-9
  • 以下附加字符:空格,句点(。),逗号(,),加号(+)和短划线( - )

我可以轻松地为前两个标准编写一个模式,但第三个标准更难。这是我管理的最后一个模式,但它似乎不适用于测试字符串Farh%%$$+++,

非常感谢任何帮助。

谢谢。

5 个答案:

答案 0 :(得分:29)

我刚刚对此进行了测试,它似乎至少在我的第一轮测试中起作用。

^[a-zA-Z 0-9\.\,\+\-]*$

答案 1 :(得分:7)

破折号必须是第一个,以免被解释为范围分隔符。另外,请确保分别在开头和结尾使用^和$锚定正则表达式,以便整个测试字符串被正则表达式吞没。

/^[-+., A-Za-z0-9]+$/

答案 2 :(得分:2)

/^[a-z0-9 .,+-]+$/i

答案 3 :(得分:0)

仅将验证选择器作为ID(根据允许的字符https://www.w3.org/TR/html4/types.html#type-id):

var isValidIdSelector = function (str) {
    var regex = new RegExp(/^[A-Za-z][A-Za-z0-9_\-\:\.]*$/gm);
    return regex.test(str);
};

答案 4 :(得分:-3)

ng-pattern="/^[a-zA-Z0-9/&quot&quot\\\]\[:;|=,+*?<>]+$/"

允许:字母数字+“/ \ [] :; | =,+ *?&lt;&gt;