【问题标题】:Parsing names to make characters uppper and lowercase解析名称以使字符大写和小写
【发布时间】:2019-07-30 19:08:14
【问题描述】:

我正在使用这个非常棒且运行良好的辅助类。本质上,我将它插入到任何输入的角度反应形式中能够处理(请参阅下面的代码)我不是这样的 javascript 高手,但我已经尝试过尝试连接另一个这样的拆分,但没有运气 split('\'')

我想要得到的解决方案是将所有单词都大写,无论是否有“非常感谢的任何提示”。

 const words = value.split(' ');

  words.forEach((word, index) => {
    const lower = Transform.lowercase(word);
    words[index] = Transform.upperLetter(lower.substr(0, 1)) + lower.substr(1);
  });

  return words.join(' ');

整个助手类在下面

  class Case {
    upper: string;
    lower: string;

    constructor(upper, lower) {
      this.upper = upper;
      this.lower = lower;
    }
  }

  export class Transform {

    static exceptions = [
      new Case('ß', 'ß')
    ];

    static lowercase = (value: string): string => {
      const letters = value.split('');

      letters.forEach((letter, index) => {
        letters[index] = Transform.lowerLetter(letter);
      });

      return letters.join('');
    }

    static capitalize = (value: string): string => {
      const words = value.split(' ');

      words.forEach((word, index) => {
        const lower = Transform.lowercase(word);
        words[index] = Transform.upperLetter(lower.substr(0, 1)) + lower.substr(1);
      });

      return words.join(' ');
    }

    static upperLetter = (lower: string): string => {
      const _case = Transform.exceptions.find(c => c.lower === lower);
      return _case ? _case.upper : lower.toUpperCase();
    }
    static lowerLetter = (upper: string): string => {
      const _case = Transform.exceptions.find(c => c.upper === upper);
      return _case ? _case.lower : upper.toLowerCase();
    }
  }

【问题讨论】:

  • 你的问题是?
  • 我想要得到的解决方案是将所有单词都大写,无论是否有'...。我会让这个更清楚

标签: javascript regex angular angular6


【解决方案1】:

尝试使用边框弓\b:

let s = "hello wo'rld";

const resp = s.replace(/\b(.)/g, (a, p1) => p1.toUpperCase())

console.log(resp)

【讨论】:

    【解决方案2】:

    你可以试试这个。

    const letters = value.split(/[ ']+/)  // to split text either by space or by ' 
    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-13
      • 2022-06-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-13
      • 2020-03-01
      相关资源
      最近更新 更多