繁体   English   中英

将字符串转换为数字和字母数组

[英]Convert a string to array of number and alphabets

var string;
var splitstring = string.split("????");

我的字符串是12BLG123我需要数组splitstring来包含元素12,BLG,123(字母和数字随机变化)

 const string = `12BLG123` const splitString = string.split(/(\\d+)/).filter(i => i) console.log(splitString) 

正则表达式用数字字符串分割字符串。 由于split不包括被其分割的值,因此我们使用捕获语法来包括数字字符串。 如果字符串以数字字符串开头或结尾,则引入空字符串,因此我们使用filter(i => i)删除空字符串(它起作用,因为空字符串是javascript中的falsey值)。

虽然不是正则表达式或拆分,但您可以执行以下操作,

 var str = "12BLG123"; var result = [].reduce.call(str, (acc, a) => { if (!acc.length) return [a]; // initial case let last = acc[acc.length - 1]; // same type (digit or char) if (isNaN(parseInt(a, 10)) == isNaN(parseInt(last.charAt(0), 10))) acc[acc.length - 1] = last + a; // different type else acc.push(a); // return the accumulative return acc; }, [] /* the seed */); console.log(result); 

这个正则表达式可能会起作用。

var splitString = string.split("[^A-Z0-9]+|(?<=[AZ])(?=[0-9])|(?<=[0-9])(?=[AZ])");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM