《web前端笔记7》js字符—获取、查找、遍历、提取、替换方法总结

JavaScript018

《web前端笔记7》js字符—获取、查找、遍历、提取、替换方法总结,第1张

(1)字符串就是零个或多个排在一起的字符。

(2)放在单引号或双引号之中。 'abc' "abc"。

(3)单引号字符串的内部,可以使用双引号。

(4)双引号字符串的内部,可以使用单引号。

(5)反引号`` :反引号允许跨行。

反引号允许字符串跨越多行并可以使用

${…} 在字符串中嵌入表达式。

(1)charAt 方法返回指定位置的字符,参数是从0开始编号的位置。

找一个字符串中的某个位置是那个字符串。

charCodeAt:返回字符串指定位置的 Unicode 码点(十进制表示)

(2)[]

字符串可以被视为字符串数组,因此可以用数组的方括号运算符,用来返回某个位置的字符

但是字符串只是数组的相似性而已实际上、没办法改变字符串中的某个字符

length 只是返回了字符串的长度,该属性没办法改变

字符串使用Unicode字符集,js内部所有的都是Unicode表示的。

JavaScript中的字符串使用的是 UTF-16 编码。

toLowerCase() 和 toUpperCase()方法可以改变大小写。

String对象是js原生提供的三个包装对象之一。用来生成字符串对象。

(1)构造函数

字符串对象是一个类数组对象,很像数组,但不是真正的数组。

(2)将任意的值转成字符

用于连接两个字符串,返回一个新字符串,不改变原字符串。

从原字符串取出子字符串并返回,不改变原字符串。

它的第一个参数是子字符串的开始位置,

第二个参数是子字符串的结束位置(不含该位置)。

如果省略第二个参数,则表示子字符串一直到原字符串结束。

用于从原字符串取出子字符串并返回,不改变原字符串,跟slice方法很相像。

它的第一个参数表示子字符串的开始位置,

第二个位置表示结束位置(返回结果不含该位置)

如果省略第二个参数,则表示子字符串一直到原字符串结束。

区别:slice 和 substring的区别?

slice:

如果参数是负值,表示从结尾开始倒数计算的位置,即该负值加上字符串长度。

如果第一个参数大于第二个参数(正数情况下),slice()方法返回一个空字符串。

substring:

如果第一个参数大于第二个参数,substring方法会自动更换两个参数的位置。

如果参数是负数,substring方法会自动将负数转为0。

由于这些规则违反直觉,因此不建议使用substring方法,应该优先使用slice。

总结:获取子字符串,使用 slice 或 substring。

用于确定一个字符串在另一个字符串中第一次出现的位置,

返回结果是匹配开始的位置。如果返回-1,就表示不匹配。

indexOf方法还可以接受第二个参数,表示从该位置开始向后匹配。

lastIndexOf

lastIndexOf方法的用法跟indexOf方法一致,主要的区别是lastIndexOf从尾部开始匹配,indexOf则是从头部开始匹配。

总结:查找子字符串时,使用 indexOf 或 includes/startsWith/endsWith 进行简单检查。

endsWith 用来判断当前字符串是否是以另外一个给定的子字符串“结尾”的,根据判断结果返回 true 或 false。

用于去除字符串两端的空格,返回一个新字符串,不改变原字符串。

toLowerCase方法用于将一个字符串全部转为小写,

toUpperCase则是全部转为大写。

它们都返回一个新字符串,不改变原字符串

split方法按照给定规则分割字符串,返回一个由分割出来的子字符串组成的数组。

如果分割规则为空字符串,则返回数组的成员是原字符串的每一个字符。

如果省略参数,则返回数组的唯一成员就是原字符串。

split方法还可以接受第二个参数,限定返回数组的最大成员数。

返回一个新字符串,表示将原字符串重复n次。

字符串补全长度的功能。如果某个字符串不够指定长度,

会在头部或尾部补全。padStart()用于头部补全,padEnd()用于尾部补全。

trimStart()消除字符串头部的空格,

trimEnd()消除尾部的空格。

返回一个由替换值(replacement)替换部分或

所有的模式(pattern)匹配项后的新字符串。

模式可以是一个字符串或者一个正则表达式,

替换值可以是一个字符串或者一个每次匹配都要调用的回调函数。

如果pattern是字符串,则仅替换第一个匹配项.

web前端笔记4-有讲 如果感兴趣、请参考之前文章

一:对文章关键字的搜索(数组的方法):

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8" />

<title></title>

<style type="text/css">

#search{

height:40pxwidth: 200pxfont-size: 30pxtext-align: center

}

#div {

font-size: 20pxwidth: 600px

}

#div span{

color: red

}

</style>

</head>

<body >

<input type="text" name="search" id="search" value="馋" onclick="this.value='' "/>

<input type="button" name="" id="bbtn" value="搜索" />

<div id="div">

<p>馋,在英文里找不到一个十分适当的字。罗马暴君尼禄,以至于英国的亨利八世,在大宴群臣的时候,常见其撕下一根根又粗又壮的鸡腿,举起来大嚼,旁若无人,好一副饕餮相!但那不是馋。埃及废王法鲁克,据说每天早餐一口气吃二十个荷包蛋,也不是馋,只是放肆,只是没有吃相。对有某一种食物有所偏好,于是大量的吃,这是贪多无厌。馋,则着重在食物的质,最需要满足的是品味。上天生人,在他嘴里安放一条舌,舌上还有无数的味蕾,教人焉得不馋?馋,基于生理的要求;也可以发展成为近于艺术的趣味。 

也许我们中国人特别馋一些。馋字从食,有声。毚音谗,本义是狡兔,善于奔走,人为了口腹之欲,不惜多方奔走以膏馋吻,所谓“为了一张嘴,跑断两条腿”。</p>

</div>

<script type="text/javascript">

       var bbtn=document.getElementById('bbtn')

       var search=document.getElementById('search')

       var text=document.getElementsByTagName('p')[0]

       var text1=text.innerHTML

       var arr=[]

       var str=text1

       bbtn.onclick=function(){

        str=text1

        arr=search.value

      str=str.split(arr).join('<span>'+arr+'</span>')

        text.innerHTML=str

       }

       

</script>

</body>

</html>

二:对li表单的搜索:

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title></title>

<style type="text/css">

*{

padding: 0margin: 0

}

#content{

margin: 100px 300pxdisplay: block

}

input{

height: 50pxwidth: 400pxfont-size: 30pxline-height: 50px

}

ul{

      

}

li{

margin:10px 0pxdisplay: block

}

</style>

</head>

<body>

<div id="content">

<ul>

<input type="" name="" id="" value="" placeholder="请输入城市的名称或拼音"/>

<li pname="北京" cname="bj">北京</li>

<li pname="株洲" cname="zz">株洲</li>

<li pname="上海" cname="sh">上海</li>

<li pname="长沙" cname="cs">长沙</li>

<li pname="杭州" cname="hz">杭州</li>

<li pname="天津" cname="tj">天津</li>

<li pname="西安" cname="xa">西安</li>

<li pname="成都" cname="cd">成都</li>

<li pname="武汉" cname="wh">武汉</li>

<li pname="南京" cname="nj">南京</li>

</ul>

</div>

        <script type="text/javascript">

         var li=document.getElementsByTagName('li')

         var text=document.getElementsByTagName('input')[0]

         function search(){

         var arr=text.value

         for(var i=0i<li.lengthi++)

         {

         li[i].style.display="none"

         if(li[i].getAttribute('pname').indexOf(arr)!=-1||li[i].getAttribute('cname').indexOf(arr)!=-1)

         {

         li[i].style.display="block"

         }

         }

         }

        text.oninput=function(){

         search()

        }

  </script>

</body>

</html>

这里有一个简单的站内搜索功能

<SCRIPT language=javascript>

<!--

function go(formname)

{

var url = http://www.163ns.com

formname.method = "get"

if (formname.myselectvalue.value == "1") {

document.search_form1.word.value = document.search_form1.word.value " site:www.163ns.com"

}

formname.action = url

return true

}

//-->

</SCRIPT>

<form name="search_form1" target="_blank" onsubmit="return go(this)">

<input name=word size="30" value="请输入关键字" onMouseOver="this.focus()" onBlur="if (value ==''){value='请输入关键字'}" onFocus="this.select()" onClick="if(this.value=='请输入关键字')this.value=''">

<input type="submit" value="搜索"><br>

<INPUT name=myselectvalue type=hidden value=0>

<INPUT name=tn type=hidden value="sayyes">

<INPUT name=cl type=hidden value="3">

<INPUT CHECKED name=myselect onclick=javascript:this.form.myselectvalue.value=0 type=radio value=0>

<FONT color=#0000cc style="FONT-SIZE: 12px">互联网 

<INPUT name=myselect onclick=javascript:this.form.myselectvalue.value=1 type=radio value=1>

<FONT color=#ff0000 style="FONT-SIZE: 12px">站内 

</form>