【问题标题】:Compare and replace character in js比较和替换js中的字符
【发布时间】:2022-12-03 08:26:18
【问题描述】:

我有一个这样的字符串:
let string = "/gb/fr/firstPage/secondPage.\

我想将 /gb/fr/ 部分与如下数组进行比较:

let array = [ "/fr/fr", "/de/de", "/es/es","/ro/ro", "/it/it"]

如果相同则返回字符串,但如果不相同则返回:

string = "/gb/en/firstPage/secondPage\

你能帮我一下或解释一下怎么做吗?

更多示例:

"/ee/et/firstPage/secondPage"

应该返回:

"/ee/en/firstPage/secondPage"`

另一个例子 :

"/lt/lt/firstPage/secondPage"

应该返回:

"/lt/en/firstPage/secondPage"

所以它基本上检查第一部分/fr/

如果它存在,它将返回相应的链接,否则它将用 `/en/` 替换第二部分

【问题讨论】:

    标签: javascript regex


    【解决方案1】:

    要将字符串的第一部分与字符串数组进行比较,您可以使用 startsWith 方法检查字符串是否以数组中的任何值开头。如果字符串不是以数组中的某个值开头,则可以使用 replace 方法将字符串的第一部分替换为所需的值。

    这是您如何执行此操作的示例:

    let string = "/gb/fr/firstPage/secondPage";
    
    let array = [ "/fr/fr", "/de/de", "/es/es","/ro/ro", "/it/it"];
    
    // check if the string starts with any of the values in the array
    let isMatch = array.some(a => string.startsWith(a));
    
    if (!isMatch) {
      // replace the first part of the string with "/gb/en"
      string = string.replace(/^/w+/w+/, "/gb/en");
    }
    
    console.log(string); // "/gb/en/firstPage/secondPage"
    
    
    

    在此代码中, some 方法用于检查数组中的任何值是否与字符串的开头匹配。如果没有任何值匹配,则使用 replace 方法将字符串的第一部分替换为所需的值。此方法使用正则表达式来匹配前两个 / 字符,然后是一个或多个单词字符 (w+),然后是另一个 / 字符和一个或多个单词字符。此正则表达式将匹配 /gb/fr 或 /us/en 这样的字符串,但不匹配 /gb 或 /fr/fr/fr 这样的字符串。

    最后,更新的字符串被记录到控制台。

    -chatgpt

    【讨论】:

      猜你喜欢
      • 2016-01-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-14
      • 1970-01-01
      • 2015-09-27
      • 1970-01-01
      • 2023-04-05
      相关资源
      最近更新 更多