本文中所有例子使用的字符串均为letstr =‘ a b g f d d w ‘`;

去除字符串左侧空格

  1. // 方式一
  2. function leftClear () {
  3. // for循环遍历数组 获取第一个不为空格字符的索引,并以此索引裁切字符串
  4. for (let i = 0; i < str.length; i++) {
  5. if (str[i] !== ' ') {
  6. return str.substring(i, str.length);
  7. }
  8. }
  9. }
  10. // 方式二
  11. // 调用现成方法
  12. str.trimLeft();
  13. str.trimStart();
  14. // 方式三
  15. // 使用正则表达式替换
  16. function clearRepL () {
  17. return str.replace(/^ */, '');
  18. }

去除字符串右侧空格

  1. // 方式一
  2. function rightClear () {
  3. // for循环从尾至头遍历数组 获取第一个不为空格字符的索引,并以此索引裁切字符串
  4. for (let i = str.length - 1; i >= 0; i--) {
  5. if (str[i] !== ' ') {
  6. return str.substring(0, i + 1);
  7. }
  8. }
  9. // 方式二
  10. // 调用现成方法
  11. str.trimRight();
  12. str.trimEnd();
  13. // 方式三
  14. // 使用正则表达式替换
  15. function clearRepR () {
  16. return str.replace(/ *$/, '');
  17. }

同时去除字符串左右两侧空格

  1. // 方式一
  2. function bothClear () {
  3. let newStr = ''; // 定义一个新字符串用来接收并返回完成后的结果
  4. for (let i = 0; i < str.length; i++) {
  5. if ( str[i] !== ' ') {
  6. newStr = str.substring(i, str.length); // 首先去除左侧空格
  7. break;
  8. }
  9. }
  10. for ( let i = newStr.length - 1; i >= 0; i--) {
  11. if (newStr[i] !== ' ') {
  12. return newStr.substring(0, i + 1); // 再返回去除右侧空格之后的字符串
  13. }
  14. }
  15. }
  16. // 方式二
  17. // 使用现成方法
  18. str.trim();
  19. // 方法三
  20. // 使用正则表达式
  21. function clearRepB () {
  22. return str.replace(/^ *(\S.*\S) *$/, '$1')
  23. }

去除字符串之间的空格

  1. // 方式一
  2. function centerClear () {
  3. let newStr = ''; // 定义一个新字符接收处理后的字符并返回
  4. for (let i = 0; i < str.length; i++) {
  5. if (str[i] !== ' ') {
  6. // 通过遍历获取字符串左侧的空白字符
  7. newStr += str.substring(0, i);
  8. break;
  9. }
  10. }
  11. for (let i = 0; i < str.length; i++) {
  12. if (str[i] !== ' ') {
  13. // 循环遍历字符串 追加全部非空格字符
  14. newStr += str[i];
  15. }
  16. }
  17. for (let i = str.length -1; i >= 0; i--) {
  18. if (str[i] !== ' ') {
  19. // 再次遍历字符串,追加右侧的空白字符
  20. newStr += str.substring(i + 1, str.length);
  21. break;
  22. }
  23. return newStr
  24. }
  25. // 方式二
  26. // 使用正则表达式替换
  27. function clearRepC () {
  28. // 使用正则表达式捕获左侧空格 中间字符 右侧空格,并分为三个区域
  29. // 使用剩余操作符... 接收参数,参数第一个值为字符串本身,第二三四为传过来的三个捕获值
  30. return str.replace(/^(\s*)(\S.*\S)(\s*)$/, function (...arg) {
  31. // 使用扩展运算符... 可以快速的将字符串转为数组
  32. // 将捕获中的第二个进行筛选去除空格 然后拼接
  33. let newCenter = [...arg[2]].filter(item => item !== ' ').join('');
  34. return `${arg[1]}${newCenter}${arg[3]}`;
  35. })
  36. }

去除字符串中的全部空格

  1. // 方式一
  2. function allClear () {
  3. let newStr = '';
  4. for (let i = 0; i < str.lentgh; i++) {
  5. if (str[i] !== '') {
  6. newStr += str[i];
  7. }
  8. }
  9. return newStr;
  10. }
  11. // 方式二
  12. // 使用es6 新语法
  13. [...str].filter(item => item !== ' ').join('')
  14. // 方式三
  15. // 使用正则表达式
  16. str.replace(/\s/g, '')