我需要正则表达式模式将字符串拆分为数字和字母。即.1abc2.5efg3mno
应该分为[".1","abc","2.5","efg","3","mno"]
。
我试过的当前正则表达式是:
var str = ".1abc2.5efg3mno";
regexStr= str.match(/[a-zA-Z]+|[0-9]+(?:\.[0-9]+|)/g);
获得的输出是:
["1","abc","2.5","efg","3","mno"]
.1
号码被视为1
,而我需要.1
。
答案 0 :(得分:15)
如果是将字母与非字母分开,那么正则表达式可以很简单:
var str = ".1abc2.5efg3mno";
var regexStr = str.match(/[a-z]+|[^a-z]+/gi);
console.log(regexStr);
即。匹配一组字母或一组非字母。
答案 1 :(得分:0)
var z = ".1abc2.5efg3mno".match(/[\d\.]+|\D+/g);
console.log(z);