javascript - 在字符串的第一个数字前添加一个空格

标签 javascript jquery

我需要在字符串的第一个数字前面添加一个空格,除非已经有一个并且除非该数字是字符串中的第一个字符。

所以我写了这段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/

相关文章:

javascript - div 悬停时暂停延迟

javascript - 类似 ipad 的 html 滚动组件

javascript - 硬币 slider 中的错误

javascript - 制作一个无限动画jQuery

javascript - 在使用 Javascript 购买产品后创建快照

javascript - 如何使用 Jquery 获取类并执行函数

javascript - 在依赖于当前表的其他表中调整 TD 的大小

asp.net - 按钮不会在 UC 内的 jQuery 对话框内回发

jquery - 使用箭头键导航到图层

javascript - 异步/等待忽略返回