格式化字符串(二)

格式化字符串(二)

直接使用字符串“.”方法的方式格式化字符串。

加强了字符串原有的replace,也就是说,字符串的原有原生方法,用法不变。


String.replace({JSON},|Boolean|?)

  1. 入门用法。

    例如:

     var string = "{name}是一个实用的{type},包含很多有趣的功能。".replace({ name: "v2", type: "前端轻量级框架" });
     console.log(string); // => v2是一个实用的前端轻量级框架,包含很多有趣的功能。

    说明:
    用法{Naming}1的方式嵌入字符串中。

  2. 初级用法。
    例如:

     var string = "{name.v2}是一个实用的{type.slice(2)},包含很多有趣的功能。".replace({ name: { v2: "v2", vue: "vue" }, type: "前端轻量级框架" });
     console.log(string); // => v2是一个实用的轻量级框架,包含很多有趣的功能。

    说明:
    用法{Naming.[Naming|Function]}2的方式嵌入字符串中。

  3. 中级用法。
    例如:

     var string = "{name.v2 + \"和\" + name.vue}都是实用的{type.slice(2)},包含很多有趣的功能。".replace({ name: { v2: "v2", vue: "vue" }, type: "前端轻量级框架" });
     console.log(string); // => v2和vue都是实用的轻量级框架,包含很多有趣的功能。

    说明:
    用法{Naming.[Naming|Function] [*^<%>+/-] + Naming.[Naming|Function]}3的方式嵌入字符串中。

  4. 高级用法。
    例如:

     var string = "{name.v2 + \"和\" + name.vue}都是{level?.very}实用的{type.slice(2)},包含很多有趣的功能。".replace({ name: { v2: "v2", vue: "vue" }, level: { very: "【非常】" }, type: "前端轻量级框架" });
     console.log(string); // => v2和vue都是【非常】实用的轻量级框架,包含很多有趣的功能。
    
     var string = "{name.v2 + \"和\" + name.vue}都是{level?.very}实用的{type.slice(2)},包含很多有趣的功能。".replace({ name: { v2: "v2", vue: "vue" }, type: "前端轻量级框架" });
     console.log(string); // => v2和vue都是实用的轻量级框架,包含很多有趣的功能。

    说明:
    用法{Naming?.[Naming|Function]}4的方式嵌入字符串中。

  5. 进价级用法。
    例如:

     var string = "{.?.name}是一个优秀的前端框架?".replace(null);
     console.log(string); // => 是一个优秀的前端框架?

    说明:
    用法{.?.Naming]}5的方式嵌入字符串中。
    均可与以上四种方式排列组合执行。

参考代码:Github


  1. {Naming}代表JSON的属性名称,替换的时候将会把JSON属性名称对应的值替换到字符串中。?
  2. {Naming.[Naming|Function]} 代表可以获取JSON的属性值的属性值,以及调用属性值的方法(可以有多层,如:{a.b.c().d.e()})。?
  3. {Naming.[Naming|Function] [*^<%>+/-] Naming.[Naming|Function]} 代表多个值之间可以进行加、减、乘、除等运算(可以有多层,如:{a + b - c ^ d / e})。?
  4. {Naming?.[Naming|Function]} 可以加入探测符,在该值空(null)的时候,终止运算,用于规避预料之内的异常(可以有多层,如:{a.b?.c()?.d.e()})。?
  5. {.?.Naming]} 本体探测,即对JSON本身进行空值(null)探测。注:第一个字符为.代表JSON对象本身。?

原文地址:https://www.cnblogs.com/vbing/p/10048901.html

时间: 2024-08-29 00:34:24

格式化字符串(二)的相关文章

基础二(格式化字符串、运算符和编码)_day02

一.Python的输出 (1)纯输出一个字符串或数字 print("Hello World") #输出 Hello World print(34) #输出 34 (2)利用字符串连接符号(+)输出 name = input("请输入你的名字") #提示用户输入名字 print("您的名字是:"+name) 用字符串拼接就很麻烦了,所以就有了格式化字符串输出 (3)格式化字符串输出 1 #!/usr/bin/env python 2 # -*- c

格式化字符串攻击原理及示例

一.类printf函数簇实现原理 类printf函数的最大的特点就是,在函数定义的时候无法知道函数实参的数目和类型. 对于这种情况,可以使用省略号指定参数表. 带有省略号的函数定义中,参数表分为两部分,前半部分是确定个数.确定类型的参数,第二部分就是省略号,代表数目和类型都不确定的参数表,省略号参数表中参数的个数和参数的类型是事先的约定计算出来的,每个实参的地址(指针)是根据确定参数表中最后一个实参的地址算出来的. 这里涉及到函数调用时的栈操作.函数栈的栈底是高地址,栈顶是底地址.在函数调用 时

格式化字符串攻击原理及示例.RP

格式化字符串攻击原理及示例 一.类printf函数簇实现原理 类printf函数的最大的特点就是,在函数定义的时候无法知道函数实参的数目和类型. 对于这种情况,可以使用省略号指定参数表. 带有省略号的函数定义中,参数表分为两部分,前半部分是确定个数.确定类型的参数,第二部分就是省略号,代表数目和类型都不确定的参数表,省略号参数表中参数的个数和参数的类型是事先的约定计算出来的,每个实参的地址(指针)是根据确定参数表中最后一个实参的地址算出来的. 这里涉及到函数调用时的栈操作.函数栈的栈底是高地址,

冒泡算法,递归,正则表达式,模块,格式化字符串的整理

一.冒泡排序原理整理图 二.递归流程图剖析 三.正则表达式内容整理 1.re模块:python中re模块提供了正则表达式相关操作 2.元字符的整理 .  ^  $  *  +  ?  {}  []  |  \ 3.   .   匹配除换行符以外的任意字符(可以通过加参数re.S匹配上换行符) \w 匹配字母或数字或下划线或汉字 \s  匹配任意的空白符 \d  匹配数字 \b  匹配单词的开始或结束 ^   匹配字符串的开始 $  匹配字符串的结束 4.   * 重复零次或更多次(常用的) +

Python用format格式化字符串

format是是python2.6新增的一个格式化字符串的方法,相对于老版的%格式方法,它有很多优点. 1.不需要理会数据类型的问题,在%方法中%s只能替代字符串类型 2.单个参数可以多次输出,参数顺序可以不相同 3.填充方式十分灵活,对齐方式十分强大 4.官方推荐用的方式,%方式将会在后面的版本被淘汰 format的一个例子 print 'hello {0}'.format('world') 会输出hello world format的格式 replacement_field     ::=

变量与字符串的连接 - format、格式化字符串

变量与字符串的连接 先当以如下三个变量: name = 'wwb' age = '17' job = 'study' 方法一:利用+号进行连接 >>> info1 = '''Welcome to ''' + name +''''s code kingdom ... Name:''' + name +''' ... Age:''' + age +''' ... Job:''' + job >>> print(info1) Welcome to wwb's code kin

Python之路--Python中应该使用%还是format来格式化字符串?

一.%还是format 1.%.format皇城PK Python中格式化字符串目前有两种阵营:%和format,我们应该选择哪种呢? 自从Python2.6引入了format这个格式化字符串的方法之后,我认为%还是format这根本就不算个问题.不信你往下看. # 定义一个坐标值 c = (250, 250) # 使用%来格式化 s1 = "敌人坐标:%s" % c 上面的代码很明显会抛出一个如下的TypeError: TypeError: not all arguments con

编写高质量代码改善C#程序的157个建议——建议13: 为类型输出格式化字符串

建议13: 为类型输出格式化字符串 有两种方法可以为类型提供格式化的字符串输出.一种是意识到类型会产生格式化字符串输出,于是让类型继承接口IFormattable.这对类型来 说,是一种主动实现的方式,要求开发者可以预见类型在格式化方面的要求.更多的时候,类型的使用者需为类型自定义格式化器,这就是第二种方法,也是最灵活 多变的方法,可以根据需求的变化为类型提供多个格式化器.下面就来详细介绍这两种方法. 最简单的字符串输出是为类型重写ToString方法,如果没有为类型重写该方法,默认会调用Obj

Python格式化字符串

在编写程序的过程中,经常需要进行格式化输出,每次用每次查.干脆就在这里整理一下,以便索引. 格式化操作符(%) "%"是Python风格的字符串格式化操作符,非常类似C语言里的printf()函数的字符串格式化(C语言中也是使用%). 下面整理了一下Python中字符串格式化符合: 格式化符号 说明 %c 转换成字符(ASCII 码值,或者长度为一的字符串) %r 优先用repr()函数进行字符串转换 %s 优先用str()函数进行字符串转换 %d / %i 转成有符号十进制数 %u