Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在JavaScript中获取特定字符前的字符串?_Javascript_String - Fatal编程技术网

如何在JavaScript中获取特定字符前的字符串?

如何在JavaScript中获取特定字符前的字符串?,javascript,string,Javascript,String,我有两个字符串,如下所示: Mar18L7 Oct13H0L7 我需要像这样抓住绳子: Mar18 Oct13H0 任何人都可以使用JavaScript在这方面提供帮助吗?如何在特定字符处拆分字符串 非常感谢。对于var str='Mar18L7' 请尝试以下任一方法: str.substr(0,str.indexOf('L7') str.split('L7')[0] str.slice(0,str.indexOf('L7')) str.replace('L7','') 对于var st

我有两个字符串,如下所示:

  • Mar18L7
  • Oct13H0L7
我需要像这样抓住绳子:

  • Mar18
  • Oct13H0
任何人都可以使用JavaScript在这方面提供帮助吗?如何在特定字符处拆分字符串


非常感谢。

对于
var str='Mar18L7'

请尝试以下任一方法:

  • str.substr(0,str.indexOf('L7')

  • str.split('L7')[0]

  • str.slice(0,str.indexOf('L7'))

  • str.replace('L7','')


  • 对于
    var str='Mar18L7'

    请尝试以下任一方法:

  • str.substr(0,str.indexOf('L7')

  • str.split('L7')[0]

  • str.slice(0,str.indexOf('L7'))

  • str.replace('L7','')


  • 基于给定的输入,我创建了以下函数,它可以在数组中获取n个字符串,并以给定的格式返回输出。检查这是否有帮助,以及是否遗漏了一些用例

    function generateStr(arr, splitStr) {
      const processedStr = arr.map(value => value.split(splitStr)[0]);
      return processedStr.join(" OR ");
    }
    
    console.log(generateStr(["Mar18L7", "Oct13H0L7"], "L7"));
    

    基于给定的输入,我创建了以下函数,它可以在数组中获取n个字符串,并以给定的格式返回输出。检查这是否有帮助,以及是否遗漏了一些用例

    function generateStr(arr, splitStr) {
      const processedStr = arr.map(value => value.split(splitStr)[0]);
      return processedStr.join(" OR ");
    }
    
    console.log(generateStr(["Mar18L7", "Oct13H0L7"], "L7"));
    

    您可以使用这样的正则表达式

    var data = ["Mar18L7", "Oct13H0L7"];
    var regex = /^([a-zA-Z0-9]+)\L[a-zA-Z0-9]+$/;
    var output = []
    data.forEach(function(el){
        var matches = el.match(regex);
        output.push(matches[1]);
    }); 
    
    输出变量将等于
    ['Mar18','Oct13H0']
    ,您可以使用输出数组上的
    .join
    方法连接所有值

    var chain = output.join(" OR ");
    // chain will be equal to "Mar18 OR Oct13H0"
    

    您可以使用这样的正则表达式

    var data = ["Mar18L7", "Oct13H0L7"];
    var regex = /^([a-zA-Z0-9]+)\L[a-zA-Z0-9]+$/;
    var output = []
    data.forEach(function(el){
        var matches = el.match(regex);
        output.push(matches[1]);
    }); 
    
    输出变量将等于
    ['Mar18','Oct13H0']
    ,您可以使用输出数组上的
    .join
    方法连接所有值

    var chain = output.join(" OR ");
    // chain will be equal to "Mar18 OR Oct13H0"
    

    input.split(“L”)[0]
    …在
    April18L7
    的情况下可能不起作用。以防万一,某个地方有一个较长版本的月份名称。除了L7之外,还有其他一些示例输入,您可以提供,以便我们可以推广解决方案。@ShubhamGupta感谢您的建议,我们有一些类似于Apr12R0或Jun12R0@SiddAjmera感谢您的输入,对于四月,我们表示像这样的前三个字母。Apr..
    input.split(“L”)[0]
    ..在
    aprl18l7
    的情况下可能不起作用。以防万一,某个地方有一个较长版本的月份名称。除了L7之外,还有其他一些示例输入,您可以提供,以便我们可以推广解决方案。@ShubhamGupta感谢您的建议,我们有一些类似于Apr12R0或Jun12R0@SiddAjmera感谢您的输入,对于四月,我们表示像这样的前三个字母。欢迎你,你能从所有答案中选择一个来回答你的问题吗欢迎你,你能从所有答案中选择一个来回答你的问题吗