【问题标题】:Get only the string inside a curly brackets [duplicate]仅获取大括号内的字符串[重复]
【发布时间】:2016-05-04 03:21:05
【问题描述】:

我有很多类似

的字符串
var str="#{ZyDt8spGZOA.mI8uHaT7o47}+#{z3PENrRf0cn.mI8uHaT7o47}+#{lhUBSvCMPWu.mI8uHaT7o47}+#{YNpiWU7fw9m.mI8uHaT7o47}";

我只需要将大括号内的内容获取到数组中。 (在上述情况下,数组长度为 4)。

我怎样才能做到这一点?

【问题讨论】:

标签: javascript regex


【解决方案1】:
    var found = [],          
    rxp = /{([^}]+)}/g,
    str = "#{ZyDt8spGZOA.mI8uHaT7o47}+#{z3PENrRf0cn.mI8uHaT7o47}+#{lhUBSvCMPWu.mI8uHaT7o47}+#{YNpiWU7fw9m.mI8uHaT7o47}",
    mat;

    while( mat = rxp.exec( str ) ) {
          found.push(mat[1]);
    }

    alert(found); 

【讨论】:

【解决方案2】:

使用以下代码

array = str.split("}+#{");

做完这个结果会是这样的

array[0] = "#{ZyDt8spGZOA.mI8uHaT7o47"  
array[1] = "z3PENrRf0cn.mI8uHaT7o47"  
array[2] = "lhUBSvCMPWu.mI8uHaT7o47"  
array[3] = "YNpiWU7fw9m.mI8uHaT7o47}" 

在此之后,只需从 array[0] 和 array[3] 中删除额外的字符串

array[0] = array[0].substring(2, array[0].length)
array[3] = array[3].substring(0, array[3].length-1)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-15
    • 1970-01-01
    • 2015-10-16
    • 2012-06-30
    • 2022-11-18
    • 2023-03-16
    相关资源
    最近更新 更多