使用JavaScript分隔符拆分字符串

我正在编写一个示例代码,通过在 javascript 中指定分隔符来拆分字符串。通过在“split()”的参数中指定分隔符,可以进行拆分。您还可以使用正则表达式指定多个字符进行拆分。

按分隔符拆分字符串

可以通过使用“split()”指定要拆分的字符串来拆分。

split('分隔符',分割数)
※返回值为数组。

实例试着用“_”分割。

const str = 'a_b_c_d_e';

const result = str.split('_');

console.log(result); // ['a', 'b', 'c', 'd', 'e']

如果没有指定分隔符,它将以 1 个字符为单位进行拆分。

const str = 'a_b_c_d_e';

const result = str.split('');

console.log(result); // ['a', '_', 'b', '_', 'c', '_', 'd', '_', 'e']

如果指定分割数,则仅获取指定的数。

const str = 'a_b_c_d_e';

const result = str.split('_', 2);

console.log(result); // ['a', 'b']

如果字符串的开头有要拆分的字符串,则首先是“空字符”。

const str = '_a_b_c_d_e';

const result = str.split('_');

console.log(result); // ['', 'a', 'b', 'c', 'd', 'e']

如果末尾有分隔符,则结尾将是“空字符”。

const str = 'a_b_c_d_e_';

const result = str.split('_');

console.log(result); // ['a', 'b', 'c', 'd', 'e', '']

此外,如果只有一个字符要拆分,则会生成一个包含两个“空字符”的数组。

const str = '_';

const result = str.split('_');

console.log(result); // ['', '']

当用于空字符串时,会生成一个“空字符”数组。

const str = '';

const result = str.split('_');

console.log(result); // ['']

将其用于“null”或“undefined”将导致错误。

let str = undefined;

console.log(str.split());
// Uncaught TypeError: Cannot read properties of undefined (reading 'split')

可以通过在使用之前确定它是否是字符串来避免错误。

let str = null;

if(typeof str === 'string'){
 console.log( str.split() )
}

“split”在把名字分割成姓与名的时候也很方便。

const name = '张 三';

const [first, last] = name.split(' ');

console.log(first); // 张
console.log(last); // 三


const name = '张 三 25 北京';

const [first, last, age] = name.split(' ');

console.log(first); // 张
console.log(last); // 三
console.log(age); // 25

使用JavaScript分隔符拆分字符串

常用表达

由于“split”也可以使用正则表达式,因此也可以使用多个分隔符进行拆分。

const str = "123,45|67,890";

const result = str.split(/[,|]/);

console.log(result); // ['123', '45', '67', '890']

另外,在正则表达式中使用“(?=模式)”也可以包含分隔文字进行分割。

※这里将“数值”按模式进行分割。

const str = "1aaa2bbb3ccc4ddd5eee";

const result = str.split(/(?=\d)/);

console.log(result); // ['1aaa', '2bbb', '3ccc', '4ddd', '5eee']

顺便说一句,如果位数不同,可以使用“/(?<!\d)(?=\d+)/”。

const str = "1aaa22bbb333ccc4444ddd55555eee";

const result = str.split(/(?<!\d)(?=\d+)/);

console.log(result); // ['1aaa', '22bbb', '333ccc', '4444ddd', '55555eee']

如果要在后面留下分隔符,可以使用(?<=模式)。

const str = "今天是、晴天。";

const result = str.split(/(?<=[。、])/);

console.log(result); // ['今天是、', '晴天。']

拆分后转回字符串

如果要在拆分后将其转换回字符串,请使用“join”,它允许您将数组连接到具有指定分隔符的字符串。

const str = 'a_b_c_d_e';

const result = str.split('_').join('');

console.log(result); // abcde
console.log(typeof result); // string

您还可以指定要返回的分隔符。

const str = 'a_b_c_d_e';

const result = str.split('_').join('-');

console.log(result); // a-b-c-d-e
console.log(typeof result); // string

拆分和排序

结合“sort”也可以对字符串进行排序。

const str = 'c_e_a_d_b';

const result = str.split('_').sort();

console.log(result); // ['a', 'b', 'c', 'd', 'e']
console.log(result.join('_')); // a_b_c_d_e

按位置拆分字符串

指定位置进行分割时使用“substring”。

字符串.substring( 起始位置, 结束位置 );

实例代码

let str = 'abcde';

console.log( str.substring(0, 3) ); // abc
console.log( str.substring(1, 3) ); // bc
console.log( str.substring(1, 10) ); // bcde
console.log( str.substring(-1, 3) ); // abc ← 如果指定负数,就当作0


本文来源:词雅网

本文地址:https://www.ciyawang.com/javascript-split-string.html

本文使用「 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 」许可协议授权,转载或使用请署名并注明出处。

相关推荐