如果字符串符合某种格式,我正在尝试在字符串中插入一些空格.具体来说,如果字符串仅由数字组成,并且长度恰好为五个字符,则应在第三个和第四个数字之间添加空格.
function codeAddress() {
var num_regex = /^\d+$/,
input = $("#distributor-search").val(),
address = (input.match(num_regex) && input.length == 5) ? input.split('').splice(3, 0 , ' ').join() : input ;
console.log('The address is: ' + address);
return false;
}
Run Code Online (Sandbox Code Playgroud)
出于某种原因,链接.split(),.splice()并.join()似乎不返回任何东西.我哪里错了?
split()返回一个数组,splice()返回带有已删除元素的数组,并join()返回连接数组.
看起来一切都出错了splice().您可以获取已删除的项目,而不是给予余数.
我的测试:
var input = '123,789';
var output = input.split(',').splice(1, 0, '456').join(',');
console.log(output); // outputs nothing, because `splice(1, 0, '456')` doesn't remove any values
Run Code Online (Sandbox Code Playgroud)
您可以通过制作使用splice功能的原型来解决这个问题,如下所示:
Array.prototype.isplice = function() {
var tmp = this;
Array.prototype.splice.apply(tmp, Array.prototype.isplice.arguments);
return tmp;
};
var output = input.split(',').isplice(1, 0, '456').join(',');
console.log(output); // outputs ["123", "456", "789"] as expected
Run Code Online (Sandbox Code Playgroud)