2-14 微信小程序string数据类型(附带方法解析)

数据类型

WXS 语言目前共有以下几种数据类型:

  • number : 数值
  • string :字符串
  • boolean:布尔值
  • object:对象
  • function:函数
  • array : 数组
  • date:日期
  • regexp:正则

string

语法

string 有两种写法:

'hello world';
"hello world";

属性

  • constructor(对创建该对象的函数的引用:返回字符串 "String"
  • length(字符串的长度

除constructor外属性的具体含义请参考 ES5 标准。

方法

  • valueOf

valueOf() 方法可返回 String 对象的原始值。

var str = "Hello World!";
var n = str.valueOf();

以上实例输出结果:

Hello World!
  •  charAt

 语 法 

string.charAt(index)

参数值

参数 描述
index 必需。表示字符串中某个位置的数字,即字符在字符串中的位置。

返回值

类型 描述
String 返回在指定位置的字符。

  

返回字符串中的第三个字符:
var str = "HELLO WORLD";
var n = str.charAt(2);

n输出结果:

L

定义和用法
charAt() 方法可返回指定位置的字符。

第一个字符位置为 0, 第二个字符位置为 1,以此类推.


返回字符串中的最后一个字符:

var str = "HELLO WORLD";
var n = str.charAt(str.length-1);
n 返回值:

D

  

  • charCodeAt

 语法 

string.charCodeAt(index)

参数值

参数 描述
index 必需。表示字符串中某个位置的数字,即字符在字符串中的下标。

返回值

类型 描述
Number 返回在指定的位置的字符的 Unicode 编码。

  

返回字符串第一个字符的 Unicode 编码:

var str = "HELLO WORLD";
var n = str.charCodeAt(0);


n 输出结果:

72

定义和用法
charCodeAt() 方法可返回指定位置的字符的 Unicode 编码。

字符串中第一个字符的位置为 0, 第二个字符位置为 1,以此类推。

  

  • concat

语法

string.concat(string1, string2, ..., stringX)

参数值

参数 描述
string1string2, ..., stringX 必需。将被连接为一个字符串的一个或多个字符串对象。

返回值

类型 描述
String 两个或多个字符串连接后生成的新字符串。

  


连接两个字符串:

var str1="Hello ";
var str2="world!";
var str3=" Have a nice day!";
var n = str1.concat(str2,str3);
//更简便的方法可以使用var n = str1 + str2 + str3;
n 输出结果:

Hello world! Have a nice day!

定义和用法
concat() 方法用于连接两个或多个字符串。

该方法没有改变原有字符串,但是会返回连接两个或多个字符串新字符串。

  

  •  indexOf 

 语法 

 string.indexOf(searchvalue,start) 

参数值

参数 描述
searchvalue 必需。规定需检索的字符串值。
start 可选的整数参数。规定在字符串中开始检索的位置。它的合法取值是 0 到 string Object.length - 1。如省略该参数,则将从字符串的首字符开始检索。

返回值

类型 描述
Number 查找指定字符串第一次出现的位置,如果没找到匹配的字符串则返回 -1。

  

定义和用法
indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。

如果没有找到匹配的字符串则返回 -1。

注意: indexOf() 方法区分大小写。


查找字符串 "welcome":

var str="Hello world, welcome to the universe.";
var n=str.indexOf("welcome");
n 输出结果:

13


在字符串查找字符 "e" 第一次出现的位置:

var str="Hello world, welcome to the universe.";
var n=str.indexOf("e");
n 输出结果:

1

在字符串第五个位置开始查找字符 "e" 第一次出现的位置:

var str="Hello world, welcome to the universe.";
var n=str.indexOf("e",5);
n 输出结果:

14

  

  • lastIndexOf

语 法

string.lastIndexOf(searchvalue,start)

参数值

参数 描述
searchvalue 必需。规定需检索的字符串值。
start 可选的整数参数。规定在字符串中开始检索的位置。它的合法取值是 0 到 stringObject.length - 1。如省略该参数,则将从字符串的最后一个字符处开始检索。

返回值

类型 描述
Number 查找的字符串最后出现的位置,如果没有找到匹配字符串则返回 -1。

  

定义和用法
lastIndexOf() 方法可返回一个指定的字符串值最后出现的位置,在一个字符串中的指定位置从后向前搜索。

注意: 该方法将从尾到头地检索字符串 string Object,看它是否含有子串 searchvalue。开始检索的位置在字符串的 fromindex 处或字符串的结尾(没有指定 fromindex 时)。如果找到一个 searchvalue,则返回 searchvalue 的第一个字符在 stringObject 中的位置。stringObject 中的字符位置是从 0 开始的。

如果没有找到匹配字符串则返回 -1 。

注意: The lastIndexOf() method is case sensitive!


实例:
查找字符串 "planet" 最后出现的位置:

var str="Hello planet earth, you are a great planet.";
var n=str.lastIndexOf("planet");
n 输出结果:

36

从第20个字符开始查找字符串 "planet" 最后出现的位置,:

var str="Hello planet earth, you are a great planet.";
var n=str.lastIndexOf("planet",20);
n 输出结果:

6

  

  • localeCompare

语法

stringObject.localeCompare(target)

参数值

参数 描述
target 要以本地特定的顺序与 stringObject 进行比较的字符串。

返回值

说明比较结果的数字。如果 stringObject 小于 target,则 localeCompare() 返回小于 0 的数。如果 stringObject 大于 target,则该方法返回大于 0 的数。如果两个字符串相等,或根据本地排序规则没有区别,该方法返回 0。

把 < 和 > 运算符应用到字符串时,它们只用字符的 Unicode 编码比较字符串,而不考虑当地的排序规则。以这种方法生成的顺序不一定是正确的。例如,在西班牙语中,其中字符 “ch” 通常作为出现在字母 “c” 和 “d” 之间的字符来排序。

localeCompare() 方法提供的比较字符串的方法,考虑了默认的本地排序规则。ECMAscript 标准并没有规定如何进行本地特定的比较操作,它只规定该函数采用底层操作系统提供的排序规则。

实例

function lineupStudents(students){
    var stu=students.split(" ");
    stu.sort(function(a,b){
        if(a.length==b.length){
            return b.localeCompare(a);
        }else{
            return b.length-a.length;
        }
    });
    console.log(stu);
}

var s1 = 'Tadashi Takahiro Takao Takashi Takayuki Takehiko Takeo Takeshi Takeshi';
lineupStudents(s1);//输出

['Takehiko','Takayuki','Takahiro','Takeshi','Takeshi','Takashi','Tadashi','Takeo','Takao']
  • match

语法

string.match(regexp)

关于正则表达式可以查阅文档:https://www.w3cschool.cn/jsref/jsref-obj-regexp.html

参数值

参数 描述
regexp 必需。规定要匹配的模式的 RegExp 对象。如果该参数不是 RegExp 对象,则需要首先把它传递给 RegExp 构造函数,将其转换为 RegExp 对象。

 

返回值

类型 描述
Array 存放匹配结果的数组。该数组的内容依赖于 regexp 是否具有全局标志 g。 如果没找到匹配结果返回 null 。

全局查找字符串 "ain",且不区分大小写:

var str="The rain in SPAIN stays mainly in the plain"; 
var n=str.match(/ain/gi);

n 输出结果:

["ain", "AIN", "ain", "ain"]
0:"ain"
1:"AIN"
2:"ain"
3:"ain"
length:4
  • replace

语法

string.replace(searchvalue,newvalue)

关于正则表达式可以查阅文档:https://www.w3cschool.cn/jsref/jsref-obj-regexp.html

参数值

参数 描述
searchvalue 必须。规定子字符串或要替换的模式的 RegExp 对象。
请注意,如果该值是一个字符串,则将它作为要检索的直接量文本模式,而不是首先被转换为 RegExp 对象。
newvalue 必需。一个字符串值。规定了替换文本或生成替换文本的函数。

返回值

类型 描述
String 一个新的字符串,是用 replacement 替换了 regexp 的第一次匹配或所有匹配之后得到的。
定义和用法
replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。

实例
在本例中,我们将执行一次全局替换,每当 "Microsoft" 被找到,它就被替换为 "W3CSchool":

var str="Visit Microsoft!";
var n=str.replace("Microsoft","W3CSchool");
n 输出结果:

Visit W3Cschools!

执行一个全局替换, 忽略大小写:

var str="Mr Blue has a blue house and a blue car";
var n=str.replace(/blue/gi, "red");
n 输出结果:

Mr red has a red house and a red car
  • search

语法

string.search(searchvalue)

参数值

参数 描述
searchvalue 必须。查找的字符串或者正则表达式。

返回值

类型 描述
Number 与指定查找的字符串或者正则表达式相匹配的 String 对象起始位置。
实例
执行一次对大小写敏感的查找:

var str="Mr. Blue has a blue house";
var n = str.search("blue");

n输出结果:
15


执行一次忽略大小写的检索:

var str="Mr. Blue has a blue house";
var n = str.search(/blue/i);

n输出结果:

4
  • slice

语法

string.slice(start,end)

参数值

参数 描述
start 必须. 要抽取的片断的起始下标。第一个字符位置为 0
end 可选。 紧接着要抽取的片段的结尾的下标。若未指定此参数,则要提取的子串包括 start 到原字符串结尾的字符串。如果该参数是负数,那么它规定的是从字符串的尾部开始算起的位置。

返回值

类型 描述
String The extracted part of the string
提取所有字符串:

var str="Hello world!";
var n=str.slice(0);
以上实例输出结果:

Hello world!


从字符串的第3个位置提取字符串片段:

var str="Hello world!";
var n=str.slice(3);
以上实例输出结果:

lo world!


从字符串的第3个位置提取8个字符串片段:

var str="Hello world!";
var n=str.slice(3,8);
以上实例输出结果:

lo wo
  • split

语法

string.split(separator,limit)

参数值

参数 描述
separator 可选。字符串或正则表达式,从该参数指定的地方分割 string Object。
limit 可选。该参数可指定返回的数组的最大长度。如果设置了该参数,返回的子串不会多于这个参数指定的数组。如果没有设置该参数,整个字符串都会被分割,不考虑它的长度。

返回值

类型 描述
Array 一个字符串数组。该数组是通过在 separator 指定的边界处将字符串 string Object 分割成子串创建的。返回的数组中的字串不包括 separator 自身。
定义和用法
split() 方法用于把一个字符串分割成字符串数组。

提示: 如果把空字符串 ("") 用作 separator,那么 stringObject 中的每个字符之间都会被分割。

注意: split() 方法不改变原始字符串。


省略分割参数:

var str="How are you doing today?";
var n=str.split();
n 输出数组值得结果:

How are you doing today?

分割每个字符,包括空格:

var str="How are you doing today?";
var n=str.split("");
n 输出数组值得结果:

H,o,w, ,a,r,e, ,y,o,u, ,d,o,i,n,g, ,t,o,d,a,y,?

使用 limit 参数:

var str="How are you doing today?";
var n=str.split(" ",3);
n 将输出3个数组的值:

How,are,you
  • substr

​​​​​​​语法

string.substr(start,length)

参数值

参数 描述
start 必需。要抽取的子串的起始下标。必须是数值。如果是负数,那么该参数声明从字符串的尾部开始算起的位置。也就是说,-1 指字符串中最后一个字符,-2 指倒数第二个字符,以此类推。
length 可选。子串中的字符数。必须是数值。如果省略了该参数,那么返回从 stringObject 的开始位置到结尾的字串。

返回值

类型 描述
String A new string containing the extracted part of the text
substr() 方法可在字符串中抽取从 开始 下标开始的指定数目的字符。

提示: substr() 的参数指定的是子串的开始位置和长度,因此它可以替代 substring() 和 slice() 来使用。

实例
从字符串第二个位置中提取一些字符:

var str="Hello world!";
var n=str.substr(2)
n 输出结果:

llo world!

从字符串第二个位置向后提取3个字符:

var str="Hello world!";
var n=str.substr(2,3);
n 输出结果:

llo
  • toLowerCase

把字符串转换为小写:

var str = "Hello World!";
var n = str.toLowerCase();

n输出结果
hello world!
  • ​​​​​​​toUpperCase

把字符串转换为大写:

var str = "Hello World!";
var n = str.toUpperCase();

n输出结果
HELLO WORLD!

 

  • toLocaleLowerCase

与 toLowerCase() 不同的是,toLocaleLowerCase() 方法按照本地方式把字符串转换为小写。只有几种语言(如土耳其语)具有地方特有的大小写映射,所有该方法的返回值通常与 toLowerCase() 一样。

 

  • ​​​​​​​toLocaleUpperCase

与 toUpperCase() 不同的是,toLocaleUpperCase() 方法按照本地方式把字符串转换为大写。只有几种语言(如土耳其语)具有地方特有的大小写映射,所有该方法的返回值通常与 toUpperCase() 一样。​​​​​​​

 

  • fromCharCode​​​​​​​

语法

String.fromCharCode(n1, n2, ..., nX)

参数值

参数 描述
n1n2, ..., nX 必需。一个或多个 Unicode 值,即要创建的字符串中的字符的 Unicode 编码。

返回值

类型 描述
String 返回代表 Unicode 编码的字符。
将 Unicode 编码转换为一个字符串:

var n = String.fromCharCode(72,69,76,76,79);
n 输出结果:

HELLO
  • trim

去除字符串两边的空白:

var str = "    Hello World!    ";
var n = str.trim();
console.log(str);
console.log(n);

n输出结果
    Hello World!    
Hello World!

以上方法的具体使用请参考 ES5 标准。

 

 

你可能感兴趣的:(微信小程序学习日志)