字符串过滤特殊字符,以及字符串末尾过滤特殊字符方法

1,031 阅读1分钟

第一种方法 replace结合正则(适用于特殊字符出现在任意位置) 这里特殊字符以我的需求中文的"、"表示

replace配合正则替换
str.replace(regexp|substr, newSubStr|function)
replace第一个参数就是正则 该正则所匹配的内容会被第二个参数的返回值替换掉
举例子

let a="dasfaffd、fdsa、、"
a.replace(/、/g,"")

image.png 这里的特殊字符就被第二个参数""给替换了等于过滤效果

第二种方法 只去掉末尾的特殊字符 这里我采用的是for循环加charAt加slice 字符串方法:charAt slice

charAt 方法可返回指定位置的字符。

image.png

image.png

slice

一个新的字符串。包括字符串 stringObject 从 start 开始(包括 start)到 end 结束(不包括 end)为止的所有字符。

start:

      截取片段的起始位置。如果是负数,则该参数规定的是从字符串的尾部开始算起的位置,也就是说,-1指最后一个位置,-2指倒数第二个位置,以此类推

end:

     要抽取片段的结束位置,若未指定,则要提取的字串,包括start到原字符串结尾的字符串。如果该参数是负数,那么它规定的是从字符串末尾开始算起始位置。

image.png

因为是判断最后一个字符串有没有特殊字符,所以需要定义一个变量i让它等于字符串的length-1 for循环i 如果字符串.charAt(i)=="、";i--

结合slice方法 因为slice返回的是一个新数组所以需要 这个字符串=字符串.slice(0,i)

image.png

同理用while循环也可以

image.png