【问题标题】:Javascript SUBSTRJavascript SUBSTR
【发布时间】:2015-03-13 12:49:55
【问题描述】:

我有一个动态字符串值“radio_3_*”。

喜欢:

1 - radio_3_5

2 - radio_3_8

3 - radio_3_78

4 - radio_3_157

5 - radio_3_475

如何选择 radio_3 部分。

【问题讨论】:

标签: javascript jquery


【解决方案1】:

基本正则表达式

var str = "radio_3_5";
console.log(str.match(/^[a-z]+_\d+/i));

reg exp 是如何工作的

/       Start of reg exp
^       Match start of line
[a-z]+  Match A thru Z one or more times
_       Match underscore character
\d+     Match any number one or more times
/       End of Reg Exp
i       Ignores case

或者用拆分

var str = "radio_334_1234";
var parts = str.split("_");
var result = parts[0] + "_" + parts[1];

甚至更疯狂(不会这样做)

var str = "radio_334_1234";
var result = str.split("_").slice(0,2).join("_");

【讨论】:

    【解决方案2】:

    您可以只使用您的字符串并使用 javascript 方法匹配

    myString = "radio_334_1234"
    myString.match("[A-Za-z]*_[0-9]*")
    
    //output: radio_334
    

    [A-Za-z]* 将采用大小写任意数量的字符

    _ 使用下划线

    [0-9]* 将采用从 0 到 9 的任意数量的字符

    【讨论】:

      【解决方案3】:

      试试这个:

      var str = 'radio_3_78';
      var splitStr = str.split('_');
      var result = splitStr[0] + '_' + splitStr[1];
      

      http://jsfiddle.net/7faag7ug/2/

      【讨论】:

      • 为什么要把同一个东西拆分两次?
      • 我认为它作为单线看起来更好,但你是对的。我更正了。
      【解决方案4】:

      使用splitpop,如下所示。

      "radio_3_475".split("_").pop(); // = 475
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-10-04
        • 2023-03-25
        • 1970-01-01
        • 1970-01-01
        • 2011-05-31
        • 1970-01-01
        • 2010-12-12
        • 1970-01-01
        相关资源
        最近更新 更多