Javascript 需要正则表达式以允许最多3个特殊字符

Javascript 需要正则表达式以允许最多3个特殊字符,javascript,regex,Javascript,Regex,我需要一个正则表达式,它满足以下要求 应接受长度在0到50个字符之间的字母数字 应接受除“,”以外的所有特殊字符 应至少接受0个特殊字符,最多接受3个特殊字符 尝试了这个,但它没有按预期工作 ^[a-z\s]{0,50}[.\-']*[a-z\s]{0,50}[.\-']*$ 如果有人能做到这一点,请让我知道。好吧,您可以编写一些无法读取或维护的异常regexp,或者只编写说明规则的代码: function validate(str) { var not_too_long

我需要一个正则表达式,它满足以下要求

  • 应接受长度在0到50个字符之间的字母数字
  • 应接受除“,”以外的所有特殊字符
  • 应至少接受0个特殊字符,最多接受3个特殊字符
  • 尝试了这个,但它没有按预期工作

    ^[a-z\s]{0,50}[.\-']*[a-z\s]{0,50}[.\-']*$
    

    如果有人能做到这一点,请让我知道。

    好吧,您可以编写一些无法读取或维护的异常regexp,或者只编写说明规则的代码:

    function validate(str) {
        var not_too_long          = str.length <= 50,
            has_no_dots           = !/\./.test(str),
            not_too_many_specials = (str.match(/[^\w\s]/g) || []).length <= 3;
    
        return not_too_long && has_no_dots && not_too_many_specials;
    }
    
    函数验证(str){
    
    var not_too_long=str.length好吧,您可以编写一些无法读取或维护的异常regexp,或者只编写说明规则的代码:

    function validate(str) {
        var not_too_long          = str.length <= 50,
            has_no_dots           = !/\./.test(str),
            not_too_many_specials = (str.match(/[^\w\s]/g) || []).length <= 3;
    
        return not_too_long && has_no_dots && not_too_many_specials;
    }
    
    函数验证(str){
    
    var not_too_long=str.length你想允许零个特殊字符吗?展示你的努力..我需要一根棍子上的月亮,但是如果我没有表现出任何努力让我的月亮在棍子上,为什么我会期望其他人帮助我?是的,也没有特殊字符allowed@spender:添加了我正在尝试的正则表达式。特殊字符字符=非字母数字字符?你想允许零个特殊字符吗?显示你的努力..我需要一根棍子上的月亮,但如果我不显示任何努力让我的月亮在棍子上,为什么我希望其他人帮助我?是的,也没有特殊字符allowed@spender:添加了我正在尝试的正则表达式。特殊字符=非字母数字字符?将答案编辑为,\W还将空格视为特殊字符将答案编辑为,\W还将空格视为特殊字符