搜索处理字符串
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"
网友评论