java后台怎么验证一个前台传过来的字符串中是否包含url地址和email
发布网友
发布时间:2022-04-30 16:32
我来回答
共6个回答
热心网友
时间:2023-10-09 00:23
合法E-mail地址:
1. 必须包含一个并且只有一个符号“@”
2. 第一个字符不得是“@”或者“.”
3. 不允许出现“@.”或者.@
4. 结尾不得是字符“@”或者“.”
5. 允许“@”前的字符中出现“+”
6. 不允许“+”在最前面,或者“+@”
正则表达式如下:
-----------------------------------------------------------------------
^(\w+((-\w+)|(\.\w+))*)\+\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$
-----------------------------------------------------------------------
字符描述:
^ :匹配输入的开始位置。
\:将下一个字符标记为特殊字符或字面值。
* :匹配前一个字符零次或几次。
+ :匹配前一个字符一次或多次。
(pattern) 与模式匹配并记住匹配。
x|y:匹配 x 或 y。
[a-z] :表示某个范围内的字符。与指定区间内的任何字符匹配。
\w :与任何单词字符匹配,包括下划线。
$ :匹配输入的结尾。
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class Test {
public static void main(String[] args) {
if(args.length != 1) {
System.out.println("请输入一个参数!");
System.exit(0);
}
Pattern p = Pattern.compile("^(\w+((-\w+)|(\.\w+))*)\+\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$");
Matcher m = p.matcher(args[0]);
boolean b = m.matches();
if(b) {
System.out.println("有效邮件地址");
} else {
System.out.println("无效邮件地址");
}
}
}
热心网友
时间:2023-10-09 00:23
//用正则表达式来判断比较容易。
String text="我在百度知道提了一个问题,我的百度空间的地址是:http://hi.baidu.com/as1t39018/ihome/ihomefeed,怎么样可以是自己的脑子更聪明.............................Im the man,im the one";
Pattern p = Pattern.compile("([\\w[.-]]+@[\\w[.-]]+\\.[\\w[.-]]+[\\w[.-]]*)|(.*(http://).*)");
Matcher m = p.matcher(text);
if(m.find())
{
m.reset();
while(m.find())
{
System.out.println(“有违法字符串:” + m.group());
}
}else
{
System.out.println("这是合法的字符窜.");
}
热心网友
时间:2023-10-09 00:23
不知道你传进来的字符串是什么参数,如果是url参数的话,我想你的url参数中携带"?a=2&b=3"这样的参数吧。如果真是这样的话,你不防先判断字符串是否包含"?",如果包含的话,在截取字符串啊。然后用正则表达式判断就可以了。
希望对你有所帮助哈。
热心网友
时间:2023-10-09 00:24
这个就是界面问题了,肯定是前台用正则表达式校验了,然后传给后台就直接用呗
热心网友
时间:2023-10-09 00:25
字符串比较代码,看是否含“@”然后用count语句统计“.”的个数
热心网友
时间:2023-10-09 00:25
用正则表达式验证一下就可以了
具体的正则网上有很多 你搜一下一堆堆的 我就不给你写了