我是Javascript的新手,我正在学习正则表达式,并且想知道是否有人能够解释我遇到的一些问题。
我正在撰写需要在发送之前进行验证的反馈表,我不太确定如何为地址添加空格。
到目前为止我有这个代码,只要我不包含空格就可以使用:
function isAlphanumeric(elem, helperMsg){
var alphaExp = /^[0-9a-zA-Z]+$/;
if(elem.value.match(alphaExp)){
return true;
}else{
alert(helperMsg);
elem.focus();
return false;
}
}
我可以简单地插入\ w,以便表达式包含空格吗?
另外,我想做一个让用户知道表单提交成功的警报。使用此代码:
if(isAlphabet(firstname, "Please only enter letters for your name")){
if(isAlphabet(surname, "Please only enter letters for your name")){
if(emailValidator(email, "Please enter a valid email address")){
if(isNumeric(phone, "Please enter a valid telephone number")){
if(isAlphanumeric(address1, "Numbers and letters only for address")){
if(isAlphanumeric(pcode, "Please enter a valid postcode")){
{
return true;
}}}}}}}
return false;
插入代码的最佳位置在哪里?我试过return true
,但它没有用。
任何提示都会很棒!
答案 0 :(得分:3)
\w
不包含空格,因此不起作用。如果您只想允许文字空格字符,请插入它:
/^[0-9a-zA-Z ]+$/
如果您想允许所有类型的空格字符,请使用\s
:
/^[0-9a-zA-Z\s]+$/
至于在return true;
之后发出警报,这肯定是行不通的; return
,顾名思义,从函数返回。函数的执行在那里结束。只需将alert
放在return true
。
您也可以考虑使用&&
(逻辑AND)来使事情更加整洁。
if(isAlphabet(firstname, "Please only enter letters for your name")
&& isAlphabet(surname, "Please only enter letters for your name")
&& emailValidator(email, "Please enter a valid email address")
&& isNumeric(phone, "Please enter a valid telephone number")
&& isAlphanumeric(address1, "Numbers and letters only for address")
&& isAlphanumeric(pcode, "Please enter a valid postcode")) {
{
alert('Form submission successful.');
return true;
}
return false;
您可能还想重新考虑是否确实需要提示说提交成功。我通常会避免这种情况 - 如果某些事情成功,那就应该是显而易见的。