最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JS格式化字符串的兩種方法(反引號與String.prototype)

 更新時間:2023年06月19日 12:36:30   作者:COCO56(徐可可)  
本文一共介紹了兩種實現(xiàn)方式,使用反引號或自定義方法實現(xiàn),需要的朋友可以參考下

本文一共介紹了兩種實現(xiàn)方式:

1. 使用反引號實現(xiàn)(推薦)

ES6 模板字符串(Template String)是增強版的字符串,用反引號(`)標識,它可以當作普通字符串使用,也可以用來定義多行字符串,或者在字符串中嵌入變量。

語法格式:

`想要輸出的字符串……${變量名稱}想要輸出的字符串……${變量名稱}`

應用實例:

 <script>
        window.onload = function() {
            var name = "徐可可";
            var age = 25;
            var sex = "男";
            console.log(`大家好,我叫${name},性別${sex},今年${age}歲了`);
        }
 </script>

2. 自定義方法實現(xiàn)

String.prototype 屬性表示 String原型對象。所有 String 的實例都繼承自 String.prototype. 任何String.prototype上的改變都會影響到所有的 String 實例。js擴展String.prototype.format字符串拼接的功能,首先是基礎功能的改造:

String.prototype.format = function(){
  if(arguments.length==0){
    return this;
  }
  for(var s=this, i=0; i<arguments.length; i++){
    s = s.replace(new RegExp("\\{"+i+"\\}","g"), arguments[i]);
  }
  return s;
};

然后就是調(diào)用了:

//方式1
var test = '我的{0}是{1}';
var result = test.format('ID','coco56');
//方式2
var test = '我的{description}是{name}';
var result = test.format({description:'ID',name:'coco56'});

下面是其它網(wǎng)友的補充

格式化字符串

使用的replace不適合多個重復

<!-- lang: js -->
String.prototype.format = function(args) {
    var result = this;
    if (arguments.length < 1) {
        return result;
    }
    var data = arguments;		//如果模板參數(shù)是數(shù)組
    if (arguments.length == 1 && typeof (args) == "object") {
        //如果模板參數(shù)是對象
        data = args;
    }
    for (var key in data) {
        var value = data[key];
        if (undefined != value) {
            result = result.replace("{" + key + "}", value);
        }
}
    return result;
}

版本2 使用了replaceAll

<!-- lang: js -->
/**
 * 替換所有匹配exp的字符串為指定字符串
 * @param exp 被替換部分的正則
 * @param newStr 替換成的字符串
 */
String.prototype.replaceAll = function (exp, newStr) {
	return this.replace(new RegExp(exp, "gm"), newStr);
};
/**
 * 原型:字符串格式化
 * @param args 格式化參數(shù)值
 */
String.prototype.format = function(args) {
	var result = this;
	if (arguments.length < 1) {
		return result;
	}
	var data = arguments; // 如果模板參數(shù)是數(shù)組
	if (arguments.length == 1 && typeof (args) == "object") {
		// 如果模板參數(shù)是對象
		data = args;
	}
	for ( var key in data) {
		var value = data[key];
		if (undefined != value) {
			result = result.replaceAll("\\{" + key + "\\}", value);
		}
	}
	return result;
}

使用方法:

<!-- lang: js -->
//兩種調(diào)用方式
var template1="我是{0},今年{1}了";
var result1=template1.format("loogn",22);
var template2="我是{name},今年{age}了";
var result2=template2.format({name:"loogn",age:22});
//兩個結果都是"我是loogn,今年22了"

對于版本2使用了正則表達式(replaceaAll),意味著當文本中出現(xiàn)多個替換位時,都可以被替換。 var template1=“我是{0},今年{1}了, lucy今年也{1}了”; var

//結果是"我是loogn,今年22了, lucy今年也22了"

到此這篇關于JS格式化字符串的兩種方法(反引號與String.prototype)的文章就介紹到這了,更多相關JS格式化字符串內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 自定義函數(shù)實現(xiàn)IE7與IE8不兼容js中trim函數(shù)的問題

    自定義函數(shù)實現(xiàn)IE7與IE8不兼容js中trim函數(shù)的問題

    這篇文章主要介紹了自定義函數(shù)實現(xiàn)IE7與IE8不兼容js中trim函數(shù)的方法,涉及trim函數(shù)的重寫與正則匹配的技巧,需要的朋友可以參考下
    2015-02-02
  • 在JavaScript中實現(xiàn)鏈式調(diào)用的實現(xiàn)

    在JavaScript中實現(xiàn)鏈式調(diào)用的實現(xiàn)

    這篇文章主要介紹了在JavaScript中實現(xiàn)鏈式調(diào)用的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-12-12
  • Bootstrap 響應式實用工具實例詳解

    Bootstrap 響應式實用工具實例詳解

    Bootstrap 提供了一些輔助類,以便更快地實現(xiàn)對移動設備友好的開發(fā)。這些可以通過媒體查詢結合大型、小型和中型設備,實現(xiàn)內(nèi)容對設備的顯示和隱藏。下面通過本文給大家分享Bootstrap 響應式實用工具,一起看看吧
    2017-03-03
  • JavaScript 編寫匿名函數(shù)的幾種方法

    JavaScript 編寫匿名函數(shù)的幾種方法

    匿名函數(shù)可以有效控制變量作用域,構造閉包 (Closure),防止對全局變量造成污染。在 JavaScript 中,編寫匿名函數(shù),有以下幾種方法.
    2010-02-02
  • readonly和disabled的區(qū)別

    readonly和disabled的區(qū)別

    要慎用readonly和disabled, 指定了disabled的表單,在submit時,不會把它的值傳出去, 如下所示,有兩個text,一個是readonly一個是disabled,submit后,只能發(fā)送那個不是disabled的,注意地址欄的值. 要保存到本地,因為submit了,不然,看不到效果.
    2008-04-04
  • javascript parseInt與Number函數(shù)的區(qū)別

    javascript parseInt與Number函數(shù)的區(qū)別

    在js中,如果你使用parseInt("08"),一般都會認為會返回8,然而實際上返回了0.但是用Number("08")返回的才是8.
    2010-01-01
  • JS中一些高效的魔法運算符總結

    JS中一些高效的魔法運算符總結

    這篇文章主要給阿加介紹了關于JS中一些高效的魔法運算符,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-05-05
  • JavaScript中使用typeof運算符需要注意的幾個坑

    JavaScript中使用typeof運算符需要注意的幾個坑

    這篇文章主要介紹了JavaScript中使用typeof運算符需要注意的幾個坑,本文總結了4個使用typeof運算符要注意的問題,需要的朋友可以參考下
    2014-11-11
  • JavaScript實現(xiàn)計算器的四則運算功能

    JavaScript實現(xiàn)計算器的四則運算功能

    這篇文章主要為大家介紹了如何通過JavaScript實現(xiàn)計算器的四則運算功能,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起動手試試
    2022-02-02
  • JS數(shù)組的遍歷方式for循環(huán)與for...in

    JS數(shù)組的遍歷方式for循環(huán)與for...in

    本節(jié)主要介紹了JS數(shù)組的遍歷方式for循環(huán)與for...in,需要的朋友可以參考下
    2014-07-07

最新評論

旌德县| 登封市| 阿克陶县| 陆良县| 靖边县| 汝城县| 泸西县| 隆安县| 邳州市| 高雄市| 武乡县| 芦山县| 五华县| 大城县| 无为县| 始兴县| 金塔县| 富源县| 巴林右旗| 呼伦贝尔市| 田林县| 榆社县| 普陀区| 襄汾县| 保定市| 乐至县| 崇明县| 金昌市| 沐川县| 开封县| 周口市| 德安县| 平谷区| 邹平县| 淅川县| 横峰县| 札达县| 曲阳县| 仙桃市| 浙江省| 东乌珠穆沁旗|