我正在使用这个自制函数来验证文本字段,但出于某种原因,它不“接受”空格。我觉得这很奇怪,因为我的课上有\s...
function validateText(controlid, minlength, maxlength, required) {
var control = document.getElementById(controlid);
if (!required && control.value.length == 0) control.style.backgroundColor = "White";
else {
var regex = new RegExp("^[a-zA-Z0-9\(\)\.\s_,:/-]{" + minlength + "," + maxlength + "}$", "g");
if (!regex.test(control.value))
control.style.backgroundColor = "#FFDDDD";
else
control.style.backgroundColor = "White";
}
}
你能告诉我为什么输入空格会使文本框变红吗?谢谢:)
最佳答案
我相信这是因为您试图将 \s
放在一个类中。在一个类中(例如,[])\s
是一个简单的严重转义的“s”。要么使用文字空间,要么使用 ^([...]|\s){
。
关于Javascript 正则表达式空格问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6853773/