【问题标题】:How can I get the string if first character matches the given character value? [duplicate]如果第一个字符与给定的字符值匹配,如何获取字符串? [复制]
【发布时间】:2017-11-24 04:45:02
【问题描述】:

我已尝试匹配最后一个字符

这里我传递一个字符,如 A 或 B,它返回以传递字符结尾的字符串

var name = $(this).find('.name').text();
return name.match( /A$/i );

【问题讨论】:

  • 在您的正则表达式模式中,$ 位于字符串的末尾,您要查找的锚点是 ^,它位于字符串的开头:val = /^A/i.test(val) ? val : '';

标签: javascript jquery


【解决方案1】:

我不是 100% 确定我正确理解了这个问题购买我想您正在尝试实现以下目标:

'monkey cow lion'.match(/^m.*$/)
Array[ "monkey cow lion" ]

如果匹配,它将为您提供整个字符串。

如果您只是在寻找单词,我认为您可以使用:

'monkey cow lion'.match(/^m\w+/)
Array [ "monkey" ]

【讨论】:

    【解决方案2】:

    最简单的方法是使用 Javascript native (ECMAScript 6) startsWith() 函数。 它接受两个参数:

    string.startsWith(searchvalue, start)
    
    1. First 是您要搜索的字符串。
    2. 第二个是可选的,表示从哪个位置开始搜索。

    所以这必须有效(.toupperCase 用于使其不区分大小写):

    return (name.toUpperCase().startsWith("A".toUpperCase())) ? name : null;
    

    如果您需要区分大小写,请删除它们:

    return (name.startsWith("A")) ? name : null;
    

    【讨论】:

      【解决方案3】:

      您也可以使用/g 代替/i

      我想这就是你要找的东西:http://regexr.com/3g74s

      所以在你的 JS 中它看起来像这样:text.match(/\b[Aa]\w*\b/g); 其中[Aa] 是你要查找的字母。

      或者在测试匹配之前,您可以将要测试的字符串小写或大写。

      如果你想强制字符串长度超过1个字符,你可以添加{1,},如下例:http://regexr.com/3g74v

      【讨论】:

        【解决方案4】:

        是否要测试字符串是否以特定字母开头

        您可以执行以下操作:

        name.charAt(0) === 'A' ? name : null; 
        

        【讨论】:

          猜你喜欢
          • 2019-09-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-03-26
          • 2016-05-16
          • 2018-08-05
          • 1970-01-01
          相关资源
          最近更新 更多