我是javaScript的新手,我遇到的问题是我必须匹配@
符号并确保它只允许在字符串中使用一次。为此,我写了以下正则表达式。
var regexpat=/[@]{1}/;
if(regexpat.test(valu))
testresults = true;
else
{
alert("Please input a valid email address!");
testresults = false;
}
我的正则表达式适用于以下输入值:abcd@abc@abc.com
。但是,如果我将输入值提供为"abcd@"@abc.com
,则不会抛出警报错误消息。
如何更改我的正则表达式以便它适用于"abcd@"@abc.com
?
答案 0 :(得分:2)
你的正则表达式只测试字符串中是否有一个@
,它不会拒绝多个var regexppat = /^[^@]+@[^@]+$/;
。使用:
@
这匹配@
被var valu;
var regexpat = /^[^@]+@[^@]+$/;
while (valu = prompt("Enter email")) {
if (regexpat.test(valu))
console.log(valu + " is valid");
else {
console.log(valu + " is invalid");
}
}
字符包围的akka-http
。
val route = get {
pathPrefix("compass") {
path("route") {
parameters(('srclat.as[Double], 'srclon.as[Double],
'destlat.as[Double], 'destlon.as[Double])) {
(srclat, srclon, destlat, destlon) =>
complete(getRoute((LatLong(srclat, srclon),
LatLong(destlat, destlon))))
}
}
}
}

答案 1 :(得分:0)
简单的方法也可以是使用split("@")
:
var value = 'abcd@@';
if(value.split("@").length === 2){
testresults = true;
}else{
alert("Please input a valid email address!");
testresults = false;
}
只需将您的字符串与@
分开,因为您只需要出现一次@
,所以必须有一个长度为2的数组,以便您可以将数组与长度2进行比较。如果数组长度更长如果不是2,则@
答案 2 :(得分:0)
电子邮件正则表达式不仅仅是一个@字符的出现。这是W3C Spec中指定的电子邮件正则表达式(例如,用于<input type="email">
):
/^[a-zA-Z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/