vue v-mode.trim 只能去掉首尾空格,有什么办法 把中间空格也处理了 另外把全角逗号,替换为半角逗号

vue v-mode.trim 只能去掉首尾空格,有什么办法 把中间空格也处理了,另外把全角,替换为半角逗号

去空格


str.split(' ').join('')

换逗号


str.split(',').join(',')

.trim 只能是过滤首尾如果是中间的话 你可以去input事件中去过滤掉就行了

用正则吧,都可以去掉

str.replace(/\s*/g,"")

推荐你还是放在 axios 去处理这些问题 最好不要去限制它的输出,因为不能输空格是很怪异的一种行为
只能说提交数据的时候 默认的去移除掉这些数据
在 axios 里的话,在请求拦截器里面 可以全局的处理一下这个问题 这样你也不需要每个数据都处理一次
当然这个只是去除掉首尾的空格,你可以使用正则在最后return的数据进行一次替换 替换掉空格 特殊字符等等

/**
 * @description: 2021-05-14 请求参数首尾去空格
 * @param {*} data
 * @return {*}
 */
function isTrim(data) {
  // 首先需要判断当前的config中是否存在data值
  if (data && data instanceof Object) {
    for (const key in data) {
      if (Object.hasOwnProperty.call(data, key)) {
        // 此处我们不要使用   let element = data[key] 注意  如果采用这种方式的话对应trim改变的值和data[key]将不再会是一个同一个内存地址
        // 在需要判断一下当前数据是否是数组
        if (Array.isArray(data[key])) {
          // 就将数组放进去
          data[key] = isTrim(data[key])
        } else if (data[key] && data[key] instanceof Object) {
          // 如果对象里面套对象的话
          data[key] = isTrim(data[key])
        } else if (data[key] && Object.prototype.toString.call(data[key]) == '[object String]') {
          // 如果对象里面的数据是String的话那么就直接trim只对String进行操作
          data[key] = data[key].trim()
        }
      }
    }
    return data
  } else if (data && Object.prototype.toString.call(data) == '[object String]') {
    // 如果是字符串说明是JSON.parse需要转换
    let dataObj = JSON.parse(data)
    // 转成对象之后在抛出去
    dataObj = isTrim(dataObj)
    return JSON.stringify(dataObj)
  } else if (data && data instanceof Array) {
    // 如果是数组  那就forin一下  判断里面的数据类型
    for (const key in data) {
      if (Object.hasOwnProperty.call(data, key)) {
        if ((data && data instanceof Object) || (data && data instanceof Array)) {
          data[key] = isTrim(data[key])
        }
      }
    }
    return data
  }
}

你也可以参照下下面这篇博客 相信会对你有所帮助