String

作者: 樱桃小白菜 | 来源:发表于2022-03-16 11:44 被阅读0次

搜索处理字符串

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

不改变原字符串。

字符 含义
$$ 插入一个 "$"
$& 插入匹配的子串
$` 插入当前匹配的子串左边的内容
$' 插入当前匹配的子串右边的内容
$n 假如第一个参数是 RegExp 对象,并且 n 是个小于100的非负整数,那么插入第 n 个子表达式匹配的字符串。如果不存在第 n个分组,那么将会把匹配到到内容替换为字面量。比如不存在第3个分组,就会用“$3”替换匹配到的内容。
const text = "I love javascript, and I am learning javaScript.";
const regExp = /javascript/ig;
text.replace(regExp, "JavaScript"); 
// I love JavaScript, and I am learning JavaScript.

const regExp = /(\d{4})-(\d{1,2})-(\d{1,2})/  
"2021-1-20".replace(regExp,"$1/$2/$3"); // "2021/1/20"

search() 方法执行正则表达式和 String 对象之间的一个搜索匹配。

const regExp = /script/i;
"JavaScript".search(regExp); // 4
"I Love Java".search(regExp); // -1

match() 方法检索返回一个字符串匹配正则表达式的结果。

var str = 'For more information, see Chapter 3.4.5.1';
var re = /see (chapter \d+(\.\d)*)/i;
var found = str.match(re);

console.log(found);

// logs [ 'see Chapter 3.4.5.1',
//        'Chapter 3.4.5.1',
//        '.1',
//        index: 22,
//        input: 'For more information, see Chapter 3.4.5.1' ]

// 'see Chapter 3.4.5.1' 是整个匹配。
// 'Chapter 3.4.5.1' 被'(chapter \d+(\.\d)*)'捕获。
// '.1' 是被'(\.\d)'捕获的最后一个值。
// 'index' 属性(22) 是整个匹配从零开始的索引。
// 'input' 属性是被解析的原始字符串。

截取字符串

charAt() 方法从一个字符串中返回指定的字符。

var anyString = "Brave new world";
anyString.chartAt(0)  // B
anyString.chartAt(999)  // ""

substring() 方法返回一个字符串在开始索引到结束索引之间的一个子集, 或从开始索引直到字符串的末尾的一个子集。

  • 功能:用于提取字符串中介于两个指定下标之间的字符;
  • 语法:string.substring(from, to)
    from:必需。一个非负的整数,规定要提取的子串的第一个字符在 string Object 中的位置。
    to: 可选。一个非负的整数,比要提取的子串的最后一个字符在 string Object 中的位置多1。
    如果省略该参数,那么返回的子串会一直到字符串的结尾。
    substring() 方法返回的子串包括 开始处的字符,但不包括 结束处的字符。
  • 注意:如果 start 比 end 大,那么该方法在提取子串之前会先交换这两个参数。
    如果 start 或 end 为负数,那么它将被替换为 0。
    如果 start 与 end 相等,那么该方法返回的就是一个空串。
var str = "123,456,789";
 
console.log(str.substring(2,6)); // 3,45
console.log(str.substring(2)); // 3,456,789
console.log(str.substring(6,2)); // 3,45
console.log(str.substring(-6,-2)); //  
console.log(str.substring(6,6)); // 

slice() 方法提取某个字符串的一部分,并返回一个新的字符串,且不会改动原字符串。

  • 功能:可提取字符串的某个部分,并以新的字符串返回被提取的部分;
  • 语法:array.slice(start, end)
    start: 必需。规定从何处开始选取。如果是负数,那么它规定从数组尾部开始算起的位置。
    如果该参数为负数,则表示从原数组中的倒数第几个元素开始提取,
    slice(-2) 表示提取原数组中的倒数第二个元素到最后一个元素(包含最后一个元素)。
    end: 可选。规定从何处结束选取。该参数是数组片断结束处的数组下标。
    如果没有指定该参数,那么切分的数组包含从 start 到数组结束的所有元素。
    如果该参数为负数, 则它表示在原数组中的倒数第几个元素结束抽取。
    slice(-2,-1) 表示抽取了原数组中的倒数第二个元素到最后一个元素(不包含最后一个元素,就是只有倒数第二个元素)。
var str = "123,456,789";
 
console.log(str.slice(2,6)); // 3,45
console.log(str.slice(-6,-2)); // 56,7
console.log(str.slice(2)); // 3,456,789
console.log(str.slice(-6)); // 56,789

split() 方法使用指定的分隔符字符串将一个String对象分割成子字符串数组,以一个指定的分割字串来决定每个拆分的位置。

  • 功能:把一个字符串分割成字符串数组;
  • 语法:string.split(separator,limit)
  • separator:可选。字符串或正则表达式,从该参数指定的地方分割 string Object。
    如果把空字符串 ("") 用作 separator,那么 stringObject 中的每个字符之间都会被分割。
  • limit: 可选。该参数可指定返回的数组的最大长度。
    如果设置了该参数,返回的子串不会多于这个参数指定的数组。
    如果没有设置该参数,整个字符串都会被分割,不考虑它的长度。
  • 注意: split() 方法不改变原始字符串。
var str = "123,456,789";
 
console.log(str.split('')); // ["1", "2", "3", ",", "4", "5", "6", ",", "7", "8", "9"]
console.log(str.split(',')); // ["123", "456", "789"]
字符串转大写
var str = prompt("请输入需转换大写的字符串:");

str = str.toUpperCase();

console.log(str);
字符串转小写
var str = prompt("请输入需转换小写的字符串:");

str = str.toLowerCase();

console.log(str);
十进制ASCII码转换成字符
String.fromCharCode(65) // A
String.fromCodePoint(65) // A
字符串转十进制ASCII码
'A'.charCodeAt() // 65
'a'.charCodeAt() // 97
10进制转 16 进制
let a = 170.toString(16) // "AA"

相关文章

网友评论

      本文标题:String

      本文链接:https://www.haomeiwen.com/subject/wryarrtx.html