正则表达式问题,限制'*'字符

时间:2013-12-24 10:02:28

标签: javascript regex

我有一个文本区域,我只允许a-z字符和数字,以及一些特殊字符(如(, ), \, _)。我的正则表达式看起来像:

/[^a-zA-Z0-9()-\/\\_ ]/g

我的javascript方法是:

function checkValue(eleValue)
{
var checked = false ;
    if (eleValue.search(/[^a-zA-Z0-9()-\/\\_ ]/g) != -1)
             checked = true;
    return checked;
}

这个正则表达式在值中允许'*',而我想限制它。

请告诉我如何在正则表达式中执行此操作。

3 个答案:

答案 0 :(得分:4)

您需要转义正则表达式中的-

/[^a-zA-Z0-9()\-\/\\_ ]/

否则,您匹配)/之间的所有字符:* + , - .

请参阅ASCII Table以查看范围内的字符。

答案 1 :(得分:0)

使用此regex也可以在搜索中包含*

[^a-zA-Z0-9()\-\/\\_ ]{0,1}[*]

答案 2 :(得分:0)

试试这个:

function checkValue (eleValue) {
    var re = new RegExp(/[a-z0-9\(\)\/\\_\s]+/ig);
    return re.test(eleValue);
}