WXS 语言目前共有以下几种数据类型:
number
: 数值string
:字符串boolean
:布尔值object
:对象function
:函数array
: 数组date
:日期regexp
:正则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)
参数 | 描述 |
---|---|
string1, string2, ..., 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
语法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() 一样。
String.fromCharCode(n1, n2, ..., nX)
参数 | 描述 |
---|---|
n1, n2, ..., 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
标准。