JS基础学习第十二天:String字符串方法

String字符串

============

string全局对象是一个用于字符串或者一个字符串序列的构造函数。

************************************************************

有关string的基本介绍和创建方法前面文章已经介绍,这儿就不再说了,有兴趣的可以翻着看看或者上MDN上查阅相关资料

相关链接https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/String

string字符串方法:

-------------------

1.charCodeAt()方法返回一个整数,代表指定位置字符的Unicode编码

    var str = "HelloString";
    var out = str.charCodeAt(5);
    console.log(out); //83

2.charAt()方法返回指定位置的字符

    var str = "HelloString";
    var out = str.charAt(1);
    console.log(out); //e

3.concat()将两个或者多个字符串组合起来,返回一个新的字符串,原字符串不变;

    var str = "Hello";
    var out = str.concat(" World","!");
    console.log(str); //Hello
    console.log(out); //Hello World! 

4.indexOf()返回字符串中一个子串第一个出现的索引值,如果没有匹配项返回 -1;

第一个参数是要搜索的子串,第二个参数是可选参数(开始搜索的位置)他的合法取值范围是0到str.length-1;

如果省略这个参数,则从字符串的首字符开始检索,此时indexOf()和search()方法类似

    var str = "HelloStringend";
    console.log(str.indexOf("e")); //1
    console.log(str.indexOf("e",2)); //11

5.lastIndexOf()返回字符串中一个子串最后一处出现的所以,如果没有匹配项,返回-1;从start位置向前查找

    var str = "HelloString";
    console.log(str.lastIndexOf("l")); //3
    console.log(str.lastIndexOf("l", 1)); //-1
    console.log(str.lastIndexOf("l", 2)); //2
    console.log(str.lastIndexOf("l", 3)); //3

6.substring(start,end)返回一个新的字符串,包括start处的字符,但不包括end出的字符,其长度为end减start;注意:参数是负数的话,负参数会直接转化为0

    var str = "HelloExample";
    console.log(str); //HelloExample
    console.log(str.substring(1, 3)); //el
    console.log(str.substring(3, 1)); //el
    console.log(str.substring(2)); //lloExample
    console.log(str.substring(-1)); //HelloExample
    console.log(str.substring(-1, -3)); //空字符串
    console.log(str.substring(-1, 5)); //Hello

7.substr(start [,length])返回一个新的字符串,从起始索引号提取字符串中指定数目的字符。如果仅有一个参数,从start到末尾,当接收的是负数时候,第一个参数与字符串长度相加后的结果作为第一个参数

    var str = "HelloExample";
    console.log(str); //HelloExample
    console.log(str.substr(1, 3)); //ell
    console.log(str.substr(2, -1)); //空字符串
    console.log(str.substr(1)); //elloExample
    console.log(str.substr(-4, 2)); //mp
    console.log(str.substr(-3)); //ple

8.slice(start,end)返回一个新的字符串,包括start处的字符,但不包括end出的字符,如果仅有一个参数,从start到末尾,当接收的是负数时候,第一个参数与字符串长度相加后的结果作为第一个参数

    console.log(str); //HelloExample
    console.log(str.slice(1, 3)); //el
    console.log(str.slice(2)); //lloExmaple
    console.log(str.slice(3, 1)); //空字符串
    console.log(str.slice(-4, -1)); //mpl
    console.log(str.slice(-4, 0)); //空字符串
    console.log(str.slice(-1, -4)); //空字符串
    console.log(str.slice(1, -4)); //elloExa

9.toLowerCase()将整个字符串转化为小写字母

 toUpperCase()将整个字符串转化为大写字母

    var str = "How Are you";
    console.log(str.toLowerCase()); //how are you
    console.log(str.toUpperCase()); //HOW ARE YOU


10.trim()方法会从一个字符串的两端删除空白字符。在这个上下文中的空白字符是所有的空白字符 (space, tab, no-break space 等) 以及所有行终止符字符(如 LF,CR)

var orig = '   foo  ';
console.log(orig.trim()); // 'foo'

// 另一个.trim()例子,只从一边删除

var orig = 'foo    ';
console.log(orig.trim()); // 'foo'

11.repeat() 构造并返回一个新字符串,该字符串包含被连接在一起的指定数量的字符串的副本。

介于0和正无穷大之间的整数 : [0, +∞) 。表示在新构造的字符串中重复了多少遍原字符串。

"abc".repeat(-1)     // RangeError: repeat count must be positive and less than inifinity
"abc".repeat(0)      // ""
"abc".repeat(1)      // "abc"
"abc".repeat(2)      // "abcabc"
"abc".repeat(3.5)    // "abcabcabc" 参数count将会被自动转换成整数.
"abc".repeat(1/0)    // RangeError: repeat count must be positive and less than inifinity

({toString : () => "abc", repeat : String.prototype.repeat}).repeat(2)   
//"abcabc",repeat是一个通用方法,也就是它的调用者可以不是一个字符串对象.

12.includes() 方法用于判断一个字符串是否包含在另一个字符串中,根据情况返回true或false。

str.includes(searchString[, position])
searchString要在此字符串中搜索的字符串。。

position可选。从当前字符串的哪个索引位置开始搜寻子字符串;默认值为0。
var str = 'To be, or not to be, that is the question.';

console.log(str.includes('To be'));       // true
console.log(str.includes('question'));    // true
console.log(str.includes('nonexistent')); // false
console.log(str.includes('To be', 1));    // false
console.log(str.includes('TO BE'));       // false


*******支持正则表达式的String的方法************

13.split(separator, howmany)返回一个字符串数组,该数组是通过separator指定的边界将字符串分割成子串创建的,范湖的数组中的字符串不包括separator自身

    var str = "How are you doing today";
    console.log(str.split(" ")); //["How", "are", "you", "doing", "today"]
    console.log(str); //How are you doing today
    console.log(str.split("")); //["H", "o", "w", " ", "a", "r", "e", " ", "y", "o", "u", " ", "d", "o", "i", "n", "g", " ", "t", "o", "d", "a", "y"] 
    console.log(str.split("", 3)); //["H", "o", "w"]
    console.log(str.split("a")); //["How ", "re you doing tod", "y"]
    console.log(str.split("good")); //["How are you doing today"]
    var str = "a_db-c(d+e";
    console.log(str.split(/[^a-z]/i)); //["a", "db", "c", "d", "e"] 

14.match(searchvalue)或者match(regexp)检查一个字符串是否匹配一个正则表达式。返回存放匹配结果的数组。

   如果 regexp 没有标志 g,那么 match() 方法就只能在 stringObject 中执行一次匹配。如果没有找到任何匹配的文本,
match() 将返回 null。否则,它将返回一个数组,其中存放了与它找到的匹配文本有关的信息。该数组的第 0 个元素存放
的是匹配文本,而其余的元素存放的是与正则表达式的子表达式匹配的文本。除了这些常规的数组元素之外,返回的数组还
含有两个对象属性。index 属性声明的是匹配文本的起始字符在 stringObject 中的位置,input 属性声明的是对stringObject的引用。
    如果 regexp 具有标志 g,则 match() 方法将执行全局检索,找到 stringObject 中的所有匹配子字符串。若没有找到
任何匹配的子串,则返回 null。如果找到了一个或多个匹配子串,则返回一个数组。不过全局匹配返回的数组的内容与前者
大不相同,它的数组元素中存放的是 stringObject 中所有的匹配子串,而且也没有 index 属性或 input 属性

    var str = "Hello world! Hello";
    console.log(str.match("lo")); //["lo"] { index: 3, input: "Hello world! Hello" }
    console.log(str.match("world")); //["world"] { index: 6, input: "Hello world! Hello" }
    console.log(str.match("world").index); //6
    console.log(str.match(/Hello/g)); //["Hello", "Hello"]
    console.log(str.match("World")); //null
    var str = "1 plus 2 equal 3";
    console.log(str.match(/\d+/g)); //["1", "2", "3"]

15.replace()方法用于字符串中用一些字符替换另一些字符,或者替换一个正则表达式匹配的子串

stringObject.replace(regexp/substr,replacement),返回一个新的字符串,是用 replacement 替换了 regexp 的第一次匹配或所有匹配之后得到的。

replacement 可以是字符串,也可以是函数。如果它是字符串,那么每个匹配都将由字符串替换。但是 replacement 中的 $ 字符具有特定的含义,它说明从模式匹配得到的字符串将用于替换。

 $1、$2、...、$99----与 regexp 中的第 1 到第 99 个子表达式相匹配的文本。
 $&------------------与 regexp 相匹配的子串。
 $`------------------位于匹配子串左侧的文本。
 $'------------------位于匹配子串右侧的文本。
 $$------------------直接量符号。

    var str = "Visit HangZhou";
    console.log(str); //Visit HangZhou
    console.log(str.replace(/Hang/g, "Su")); //Visit SuZhou
    var str = "1 plus 2 equal 3";
    console.log(str); //1 plus 2 equal 3
    console.log(str.replace(/(\d)/g, "*"));  //* plus * equal *

    var str = "as An angle";
    console.log(str.replace(/a/, "b")); //bs An angle
    console.log(str.replace(/a/g, "b")); //bs An bngle
    console.log(str.replace(/a/gi, "b")); //bs bn bngle

    var str = "Karl,John";
    console.log(str.replace(/(\w+)\s*,\s*(\w+)/, "$2,$1")); //John,Karl

    var str = '"ab", "b"';
    console.log(str.replace(/"([^"]*)"/g, "'$1'")); //'ab', 'b' 

    var str = "aaa bbb ccc";
    console.log(str.replace(/\b\w+\b/g, function (w) {
        return w.substring(0, 1).toUpperCase() + w.substring(1);
    })); //Aaa Bbb Ccc 

16.search()执行一个正则表达式匹配查找。如果查找成功,返回字符串中匹配的索引值,否则返回-1

    var str = "Visit HangZhou";
    console.log(str) //Visit HangZhou
    console.log(str.search(/Hang/)); //6
    console.log(str.search(/hang/)); //-1
    console.log(str.search(/hang/i)); //6
    var str = "1 plus 2 equal 3";
    console.log(str) //1 plus 2 equal 3
    console.log(str.search(/\d/g)); //0


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值