javascript在alert之前转义单引号
对于1个单引号,则转义该单引号
对于1个反斜杠跟1个单引号,则不管它。
对于2个及以上的反斜杠加一个单引号,则分别对每个反斜杠和单引号都进行转义,即 使反斜杠数目保持不变, 并转义单引号。
/// <summary>
/// 对于单引号而言,若前面有偶数个反斜杠则异常,奇数个反斜杠则正常
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
private string ReplaceQuote(string input)
{
string pattern = @"(?:\\)*(?=['])";
return Regex.Replace(input, pattern, new MatchEvaluator(ReplaceText));
}
// 匹配项
public string ReplaceText(Match m)
{
string str = m.Value;
if (str.Length == 0)
{
// 只有单引号,则转义该单引号
return str + @"\";
}
else if(str.Length == 1)
{
// 1个反斜杠加一个单引号,则不替换
return string.Empty;
}
// 对于大于2个长度的反斜杠,则返回原来的2倍
// 即 使把每个反斜杠都转义了。
return new string('\\', 2 * str.Length);
}
protected void Page_Load(object sender, EventArgs e)
{
// 测试代码
string strText = @"'a\'b\\'c\\\'d\\\\'";
System.Diagnostics.Stopwatch swt = new System.Diagnostics.Stopwatch();
swt.Start();
strText = ReplaceQuote(strText);
swt.Stop();
Response.Write("替换使用了毫秒数:" + swt.ElapsedMilliseconds.ToString());
string strAlert = string.Format("alert('{0}')", strText);
ClientScript.RegisterStartupScript(this.GetType(), "alert", strAlert, true);
}
相关文档:
<SCRIPT LANGUAGE="JavaScript">
var strDate1 = "2003-06-17";
var strDate2 = "2004-09-18";
//var strDate1 = "2003-06-17 03:03:40.0";
//var strDate2 = "2004-09-18 12:03:12.0" ......
Doc链接: http://docs.google.com/Doc?docid=0AZUdXGtQa0xqZGRocmo3MzZfMjA2Y2ZqZ2szZ2g&hl=en
关键词:JavaScript;对象;prototype;prototype链
我们来打个比方吧:
随着个人电脑硬件的白菜价化,很多硬件制造商开始帮用户做整机DIY。有时候用户可能回到“总部”去装机,那里东西很全。但一般这些厂家 ......
在程序员杂志上看到一篇短文《前端开发工具概览》。觉得很有实用价值。现总结如下:
一、调试工具
1.firebug
2.Web Developer Toolbar--调整页面的各个细节
3.IE Developer Toolbar--调试IE的HTML和CSS
4.Companion.JS--调试IE的Javascript
5.Fiddler--Web调试代理,记录本机到互联网的所有HTTP(S)请求。
二、测试工 ......
下面都是我收集的一些比较常用的正则表达式,因为平常可能在表单验证的时候,用到的比较多。特发出来,让各位朋友共同使用。呵呵。
匹配中文字符的正则表达式: [u4e00-u9fa5]
评注:匹配中文还真是个头疼的事,有了这个表达式就好办了
匹配双字节字符(包括汉字在内):[^x00-xff]
评注:可以用来计算字符串的长度(一个 ......