表单输入验证:如何允许输入内容包含空格?
解决表单验证允许空格的问题
要让表单验证允许输入包含空格,直接把空格字符添加到正则表达式的字符集合里即可,不需要额外拼接字符串。
错误原因说明
你之前尝试将正则对象和空格字符串相加的做法是错误的——正则对象与字符串相加时会被自动转换为字符串形式(比如变成"/^[A-Za-z0-9.]*$/ "),此时调用test方法本质是在做普通字符串匹配,完全偏离了正则验证的逻辑,所以无法生效。
修正后的完整代码
// 允许英文、数字、点号和空格的正则 const english = /^[A-Za-z0-9. ]*$/; form.addEventListener("submit", (e)=>{ if(!english.test(seller_name.value)){ alert("Bad input! Enter only English letters, numbers, dots or spaces."); e.preventDefault(); }else if(!english.test(seller_domain.value)){ alert("Bad input! Enter only English letters, numbers, dots or spaces."); e.preventDefault(); } });
额外提示
如果需要限制空格只能出现在中间(不允许开头或结尾有空格),可以把正则改成:
const english = /^[A-Za-z0-9.]+(?: [A-Za-z0-9.]+)*$/;
这样就能确保输入的内容不会以空格开头或结尾,同时中间可以有多个空格分隔的有效字符段。
内容的提问来源于stack exchange,提问作者Shahar
相关产品推荐
相关产品推荐

