网搜的js版String.format。

本文介绍两种JavaScript中的字符串格式化方法,一种是通过扩展String原型的方法,另一种是静态方法。这两种方法都允许使用类似于C#中String.Format的功能来方便地替换字符串中的占位符。

本文为转载,原文链接如下:javascript String.format

经常在js里拼字符串,实在忍不下去了,在网上搜索了一下js版的String.format。

第一个写得太巧妙了,看了半天没看懂。

为了跟C#语法配合,还是选用第二个版本吧。

看了下没有在jquery里找到这方面的功能,也不知ASP.NET Ajax Library里是怎么实现这个的。

<script type="text/javascript">

//V1 method
String.prototype.format = function()
{
    var args = arguments;
    return this.replace(/\{(\d+)\}/g,                
        function(m,i){
            return args[i];
        });
}



//V2 static
String.format = function() {
    if( arguments.length == 0 )
        return null;

    var str = arguments[0]; 
    for(var i=1;i<arguments.length;i++) {
        var re = new RegExp('\\{' + (i-1) + '\\}','gm');
        str = str.replace(re, arguments[i]);
    }
    return str;
}

var a = "I Love {0}, and You Love {1},Where are {0}! {4}";
alert(String.format(a, "You","Me"));

alert(a.format("You","Me"));
</script>

来源参考:

V1:http://samlin.cnblogs.com/archive/2008/01/25/1053610.html

V2:http://www.cnblogs.com/hwade/articles/867767.html

String.replace的特殊用法:

http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference:Global_Objects:String:replace

String.replace的妙用:

http://www.codebit.cn/pub/html/javascript/tip/javascript_replace/

import java.io.IOException; import java.io.PrintWriter; import java.text.SimpleDateFormat; import java.util.Date; import javax.servlet.ServletException; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class LastAccessServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 设置响应内容的编码方式为UTF-8,防止发生乱码 response.setContentType("text/html;charset=utf-8"); PrintWriter out = response.getWriter(); // 定义查找的cookie名称 String cookieName = "lastTime"; // 定义flag变量,判断是否是第一次访问 boolean flag = false; // 获取cookie Cookie[] cookies = request.getCookies(); if (cookies != null && cookies.length > 0) { for (Cookie cookie : cookies) { String name = cookie.getName(); if (cookieName.equals(name)) { // 不是第一次访问 flag = true; // 获取cookie的value值 String value = cookie.getValue(); out.write("欢迎回来,您上次访问时间:" + value); // 设置新的时间 SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss"); String currentTime = sdf.format(new Date()); cookie.setValue(currentTime); // 设置cookie的存活时间为一个月 cookie.setMaxAge(60 * 60 * 24 * 30); response.addCookie(cookie); break; } } } if (cookies == null || cookies.length == 0 || flag == false) { // 第一次访问 SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss"); String currentTime = sdf.format(new Date()); Cookie cookie = new Cookie(cookieName, currentTime); cookie.setMaxAge(60 * 60 * 24 * 30); response.addCookie(cookie); out.write("您好,欢迎您首次访问"); } } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doGet(request, response); } } 完成课件中的 任务1:显示用户上次访问时间,理解算法逻辑,读懂每个语句的含义。运行成功后: (1)打开开发者工具F12,找到请求头中的Cookie:截屏显示; (2)换个浏览器访问该站,还有lastTime这个Cookie吗? (3) 查看你的浏览器上面还有哪些Cookie?说说Cookie的安全性如何?
最新发布
11-05
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值