javaScript RegExp对象问题

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
 <HEAD>
  <TITLE>正则表达式--邮件内容处理程序</TITLE>
  <META NAME="Generator" CONTENT="EditPlus">
  <META NAME="Author" CONTENT="">
  <META NAME="Keywords" CONTENT="">
  <META NAME="Description" CONTENT="">
<script>
function getResult(){
   var str=document.getElementById('content').value; 
   var from=/From: (\w+@\w+[\.\w+]?)/;
   var to=/To: (\w+@\w+\.[a-z]+)/;
   var subject=/Subject: (.*)/;
  
   var f=str.match(from);
   f=RegExp.$1;

   var t=str.match(to);
   t =RegExp.$1;
 
   var s=str.match(subject);
   s =RegExp.$1;
  
   document.getElementById('from').innerHTML=f;
   document.getElementById('to').innerHTML=t;
   document.getElementById('subject').innerHTML=s;
}


</script>
 </HEAD>

 <BODY>
 邮件内容:
 <br>
 <TEXTAREA NAME="content" ROWS="6" COLS="50">
From: elvis@localhost (The King)
To: 828108163@163.com (Jerry)
Subject: Hello word!
 </TEXTAREA>
 <br>
 <input type="button" οnclick="getResult();" value="开始处理">
 <br>
 邮件发送人:<div id="from"></div>
 邮件接收人:<div id="to"></div>
 邮件主题:<div id="subject"></div>
 
 </BODY>
</HTML>


请问一下:相同的RegExp.$1怎么拿到的值却不一样?我来帮他解答

2008-7-24 07:58 满意回答 可能你根本没有明白正则表达式的匹配,看你下面这段语句:

var str=document.getElementById('content').value;
var from=/From: (\w+@\w+[\.\w+]?)/;
var to=/To: (\w+@\w+\.[a-z]+)/;
var subject=/Subject: (.*)/;

//通过上门的定义语句,str是一个字符串,from\to\subject是三个正则表达式

var f=str.match(from);
f=RegExp.$1;

//这两个语句:对用正则表达式from对字符串str进行匹配,如果匹配成功,正则表达式from里面括号里面的内容就依次赋予RegExp.$1~RegExp.$n,也就是说,这两个语句执行以后,f的值是str里面“From: ”后面的符合电子邮件规则(\w+@\w+[\.\w+]?)的一个地址。

var t=str.match(to);
t =RegExp.$1;

//和上面一样的道理,执行后t就是邮件的目标地址

var s=str.match(subject);
s =RegExp.$1;

//s为邮件主题

 

核心的地方就是,字符串的.match方法或修改全局变量RegExp的内容,match以后可以从RegExp里面获取需要的信息。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值