具有少量特殊字符的字符串的有效正则表达式

Valid Regex for string with few special characters

本文关键字:字符串 正则表达式 有效 特殊字符      更新时间:2023-09-26

我被困在javascript中的正则表达式检查中,找不到有效的解决方案。

我的Javascript函数:

function checkFilledText() {
    var retBool = false;
    var vals= $("#input1").val();
    if ($.trim(vals) == "" || vals.length <= 0) {
        alert("No text entered");
        return false;
    }
    var pattrn = new RegExp("[A-Za-z0-9.'-/:]{3,15}");
        retBool = pattrn.test(vals);
    alert("Validation is: " + retBool);
}

正则表达式应该验证M-24554-236,同时使M-45455^455无效。这意味着任何包含文本(字母数字)的字符串(字母数字)带有/不带有特殊字符(包括介于两者之间的任何位置/'.:-)都是有效的,而除字母数字字符之外的任何特殊字符都应使字符串无效。

这是小提琴.这个小提琴目前验证了它们,而RegExr说它应该按预期工作。

由于您使用的是正则表达式构造函数,因此您需要转义一些特殊字符,因此请使用类似正则表达式

var pattrn = /^[A-Z'd.'''-'/:]{3,15}$/i 

var pattrn = new RegExp("^[A-Z''d.''''''-''/:]{3,15}$", 'i');

function checkFilledText() {
  var retBool = false;
  var vals = $("#input1").val();
  if ($.trim(vals) == "" || vals.length <= 0) {
    $('#log').html("No text entered");
    return false;
  }
  var pattrn = new RegExp("^[A-Z''d.''''''-''/:]{3,15}$", 'i');
  // M-2344234-234 must be valid
  // M%2344234-234 must be invalid
  retBool = pattrn.test(vals);
  $('#log').html("Validation is: " + retBool);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<input type="text" id="input1" />
<input type="submit" onclick="checkFilledText()" />
<div id="log"></div>