Javascript 避免通过正则表达式重复字符

Javascript 避免通过正则表达式重复字符,javascript,c#,regex,Javascript,C#,Regex,我有以下四个正则表达式模式 string strIMEIRegEx = "^[0-9]{15}$"; string strIMEIRegExAlt = "^[a-fA-F0-9]{14}$"; string strNameRegEx = "^[0-9A-Za-z ]{1,50}$"; string strNameRegEx = @"^(a-z|A-Z|0-9)*[^$%^&*;:,<>?()\""\']*$"; 字符串strIMEIRegEx=“^[0-9]

我有以下四个正则表达式模式

  string strIMEIRegEx = "^[0-9]{15}$";
  string strIMEIRegExAlt = "^[a-fA-F0-9]{14}$";
  string strNameRegEx = "^[0-9A-Za-z ]{1,50}$";
  string strNameRegEx = @"^(a-z|A-Z|0-9)*[^$%^&*;:,<>?()\""\']*$";
字符串strIMEIRegEx=“^[0-9]{15}$”;
字符串strimeireglovate=“^[a-fA-F0-9]{14}$”;
字符串strNameRegEx=“^[0-9A-Za-z]{1,50}$”;
字符串strNameRegEx=@“^(a-z ^ a-z | 0-9)*[^$%^&*;:,?()\“”\'']*$”;
问题
  • 对于
    strIMEIRegEx
    strimeiregularv
    它允许重复0的计数为14(例如-00000000000000),这是我需要避免的。它不应该在开始时也允许0
  • 对于
    strNameRegEx
    和strNameRegEx
    它允许任何单个字符串(例如,它接受“@”、“!”、“q”、“1”`)。此正则表达式应允许字母数字(带/不带允许的特殊字符)
  • 我知道我必须用
    ()\1{“想要避免的重复字符数”}
    更新上面的正则表达式,但是我不知道如何使用上面的正则表达式模式进行修复

    1-对于strIMEIRegEx和StrimeiRegElevate,它允许重复0的计数为14(例如-00000000000000),这是我需要避免的

    在开始时使用否定的前瞻断言

    string strIMEIRegEx = "^(?!0+$)[1-9][0-9]{14}$";
    string strIMEIRegExAlt = "^(?!0+$)[a-fA-F1-9][a-fA-F0-9]{13}$";
    

    问题更新后,我将更新第二种情况的答案,因为当前的答案不清楚。

    Downvoter请解释原因。不是Downvoter,但您能解释第二种情况吗?您将第二个正则表达式限制为至少接受一个字符<代码>1
    是数字。然后呢?@AvinashRaj谈到了strNameRegEx。它还允许空字符串。目前它允许类似“@”的字符串,我希望通过将其设置为字母数字(带/不带允许的特殊字符)来避免这种情况。希望它能澄清。如果需要进一步解释,请让我知道bro。请更新正则表达式,使其在开始时不允许0。检查我的更新。。编辑问题或尽快向回答者提出任何问题。关于strNameRegEx。它还允许空字符串。目前它允许类似“@”的字符串,我希望通过将其设置为字母数字(带/不带允许的特殊字符)来避免这种情况。希望它能澄清。如果需要进一步解释,请告诉我bro尝试
    字符串strNameRegEx=@“^[a-zA-Z0-9]+(?:[a-zA-Z0-9]+)*$”
    。如果不是,则发布第二个的有效和无效匹配。