【问题标题】:Strings equality when they contains same word in Typescript / Angular在 Typescript / Angular 中包含相同单词时的字符串相等
【发布时间】:2019-12-26 14:58:27
【问题描述】:

假设我有 2 个这样的字符串变量:

var string1 = 'StagingFront';
var string2 = 'FrontStaging';

我希望 if 条件 (string1 == string2) 返回 true。如果在 typescript/angular 中已经存在一个函数来做到这一点,那就太好了!自定义函数对我来说不是问题,但我不知道如何简单地做到这一点。

它也应该适用于这种情况:

var string3 = 'StagingFrontProd';
var string4 = 'FrontProdStaging';

【问题讨论】:

  • 如果字符串遵循相同的 CamelCase 模式,作为建议,我会这样做:1)将每个字符串拆分为 CamelCase 令牌列表(google for split camelcase regex); 2)对两个列表进行排序; 3) 比较两个列表以找出它们是否具有相同的标记,无论它们在字符串上的哪个位置。

标签: angular string typescript equality


【解决方案1】:

我正在为@antseq 的解释添加代码。

const str1 = this.string1.split(/(?=[A-Z])/).sort();
const str2 = this.string2.split(/(?=[A-Z])/).sort();
if(JSON.stringify(str1) === JSON.stringify(str2)) {
  console.log("matching");
} else {
  console.log("not matching")
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-07
    • 2018-09-18
    • 1970-01-01
    • 1970-01-01
    • 2016-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多