【问题标题】:Ignore first character of string - JS - Regex忽略字符串的第一个字符 - JS - 正则表达式
【发布时间】:2015-10-04 22:49:48
【问题描述】:

我正在尝试编写一个正则表达式,它将忽略字符串的第一个字符并从第二个字符开始。

例如

str = "14";
test = "4";

仅当 4 是位置 2(字符串的结尾)而不是开头时才会匹配,以下将失败

str = "21";
test = "4";

我在 Regex 上很垃圾,到目前为止我尝试过的所有选项都没有奏效。

我现在的代码是这样的

filters = filters.replace(/,\s*$/, '');
objRegex = new RegExp('\\/^.{1}(.*)/' + filters, 'gi');

其中过滤器是由两个字符组成的随机字符串。当前的正则表达式是从另一个 SO 帖子中复制的,但它不起作用,并且鉴于我的知识有限,我不确定如何使其工作,任何人都可以提供帮助吗?

谢谢!

【问题讨论】:

  • 您是否只想检查第二个字符是否为特定数字?
  • 差不多,但数字不是静态的,它会改变,所以我不能依赖检查特定数字,它需要检查位置以及该数字是否在末尾然后字符串匹配
  • 有什么理由不能使用substr?例如:if( str.substr(-1) === '4' ); // If the last character in str equals '4'
  • 我已经使用子字符串了,谢谢!

标签: javascript regex match regex-negation


【解决方案1】:

我认为正则表达式有点矫枉过正,这样的事情怎么样:

var stringToSearch = '14';
var stringToFind = '4';
if (stringToSearch && stringToSearch.length === 2 &&
    stringToSearch[1] === stringToFind) {
    // do something
}

【讨论】:

    【解决方案2】:

    只使用子串方法?

    str = "14";
    test = "4";
    var str = str.substring(0, 2);
    

    【讨论】:

      【解决方案3】:

      使用以下模式: "^[\w]{1}4$"

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-05-14
        • 1970-01-01
        • 1970-01-01
        • 2017-04-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多