具有少数特殊字符的字符串的有效正则表达式
Valid Regex for string with few special characters
我在 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
无效。这意味着任何包含文本(字母数字)with/without 特殊字符(包括介于两者之间的任何位置的 /\.:-
)的字符串都是有效的,而除字母数字以外的任何特殊字符都应使该字符串无效。
这是 fiddle . This fiddle currently validates both of them, while 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>
我在 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
无效。这意味着任何包含文本(字母数字)with/without 特殊字符(包括介于两者之间的任何位置的 /\.:-
)的字符串都是有效的,而除字母数字以外的任何特殊字符都应使该字符串无效。
这是 fiddle . This fiddle currently validates both of them, while 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>