我需要在字符串的第一个数字前面添加一个空格,除非已经有一个并且除非该数字是字符串中的第一个字符。
所以我写了这段JS代码:
document.getElementById('billing:street1').addEventListener('blur', function() {
var value = document.getElementById('billing:street1').value;
var array = value.match(/\d{1,}/g);
if (array !== null) {
var number = array[0];
var index = value.indexOf(number);
if(index !== 0){
var street = value.substring(0, index);
var housenumber = value.substring(index);
if (street[street.length - 1] !== ' ') {
document.getElementById('billing:street1').value = street + ' ' + housenumber;
}
}
}
});
Fiddle
它工作正常,但我觉得这可能会以更智能、更紧凑的方式完成。
此外,欢迎提出 JQuery 建议,我只是不太熟悉它。
最佳答案
试试这个:
const addSpace = (str) => {
return str.replace(/(\D)(\d)/, "$1 $2")
}
console.log(addSpace("12345")) // "12345"
console.log(addSpace("city12345")) // "city 12345"
console.log(addSpace("city")) // "city"
(\D)
捕获一个非数字
(\d)
捕获一个数字
所以 (\D)(\d)
表示:非数字后跟数字
我们替换为 "$1 $2"
= captured1 + space + captured2
关于javascript - 在字符串的第一个数字前添加一个空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45731263/