日期:2014-05-16  浏览次数:20357 次

String.prototype.trim = function(){return this.replace(/^\s+(.*?)\s+$/,"$1")}
String.prototype.trim = function(){
  return this.replace(/^\s+(.*?)\s+$/,"$1")
}
这是《JavaScript高级程序设计》中trim()的实现。
我有两个问题不明白,请大家解释下:
1:正则表达式中的$是什么意思?(我知道$1是什么)
2:我一直以为^只能用在方括号[]中,我应该是错了。但我不明白下面的代码为什么不是输出××××b**,而是输出add bdd。
  var abc = "add bdd";
  alert(abc.replace(/^b/g,"*"));

------解决方案--------------------
(1)/^\s+(.*?)\s+$/ 
正则表达式中 
^ 匹配输入字符串的开始位置
$ 匹配输入字符串的结束位置
但,如果是在方括号[]中的话,他们只代表自己。

(2)根据(1)的解释,/^b/g 只有在字符串中第一个字符为字母b的时候才会替换第一个字符。
只能替换后未发生变化 。

------解决方案--------------------
你正则的基本文档没看过吧