java后台怎么验证一个前台传过来的字符串中是否包含url地址和email

用了正则表达式,只传进来一个网址,这样是可以验证的,如果传进来的字符串夹杂别的信息,那就不行了,字符串像:Stringtext="我在百度知道提了一个问题,我的百度空间的... 用了正则表达式,只传进来一个网址,这样是可以验证的,如果传进来的字符串夹杂别的信息,那就不行了,字符串像:
String text="我在百度知道提了一个问题,我的百度空间的地址是:http://hi.baidu.com/as1t39018/ihome/ihomefeed,怎么样可以是自己的脑子更聪明.............................Im the man,im the one";
内容随便,但是不可以有网址和email,如果包含网址和email的话就不行。
展开
 我来答
andy0566
2011-06-23 · TA获得超过4437个赞
知道小有建树答主
回答量:1099
采纳率:75%
帮助的人:312万
展开全部
合法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("无效邮件地址");
}
}
}
shitou51920
2011-06-25 · TA获得超过140个赞
知道答主
回答量:31
采纳率:0%
帮助的人:43.8万
展开全部
//用正则表达式来判断比较容易。
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("这是合法的字符窜.");
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
北白翠2z
2011-06-23 · 超过10用户采纳过TA的回答
知道答主
回答量:35
采纳率:0%
帮助的人:29.1万
展开全部
不知道你传进来的字符串是什么参数,如果是url参数的话,我想你的url参数中携带"?a=2&b=3"这样的参数吧。如果真是这样的话,你不防先判断字符串是否包含"?",如果包含的话,在截取字符串啊。然后用正则表达式判断就可以了。
希望对你有所帮助哈。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
巢箫笛0J6
2011-06-23 · TA获得超过2177个赞
知道小有建树答主
回答量:1125
采纳率:50%
帮助的人:726万
展开全部
这个就是界面问题了,肯定是前台用正则表达式校验了,然后传给后台就直接用呗
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
gooby7737
2011-06-23
知道答主
回答量:41
采纳率:0%
帮助的人:26.5万
展开全部
字符串比较代码,看是否含“@”然后用count语句统计“.”的个数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
幽冥神者
2011-06-23 · TA获得超过3213个赞
知道大有可为答主
回答量:1953
采纳率:50%
帮助的人:1791万
展开全部
用正则表达式验证一下就可以了
具体的正则网上有很多 你搜一下一堆堆的 我就不给你写了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式