0

嗨,我需要拆分变量值的一部分

在我的 html 文件中,我得到了一个变量的动态值,像这样

product/roe_anythin_anything-1.jpg 

product/soe_anything_anything-2.jpg

我需要删除之前

/斜线部分

之后

_ 部分

这应该返回roe or soe部分

我使用了一个功能

  <script>
function splitSize(){

$('#splitSize').each(function(index) {
    var mystr = $(this).html();
    var mystr1 = /product\/(.*)-.*/.exec(mystr);
    $(this).html(mystr1[1]);
    //$(this).html(mystr1[0]);  
});
}
splitSize();


</script>

有了它,我成功获得了 roe_anythin_anything 我只需要在 ` 之后立即删除

_ 部分

`

请建议我该怎么做

4

2 回答 2

1

正如您使用 split 询问的那样。您可以使用 RegEx 使其更简单

 var myStr = 'product/roe-1.jpg' ;
 myStr = myStr.split('/')[1];
 myStr = myStr.split('-')[0];

工作 JS 小提琴

于 2013-04-26T10:29:11.547 回答
0

使用正则表达式组捕获

var myStr = 'product/roe-1.jpg';
var result = /product\/(.*)-.*/.exec(myStr)[1];

分解:

/product\/

匹配初始产品字符串和 / 字符(转义,因此它不会被解释为正则表达式的结尾)

(.*)

匹配您的 roe 字符并将它们保存在“捕获组”中 - 所有内容都包括但不包括连字符

然后匹配连字符,然后匹配其他任何内容。

这将返回一个 2 元素数组。第 0 项是整个字符串,第 1 项是捕获组的内容。

请参阅如何访问 JavaScript 正则表达式中的匹配组?更多细节

于 2013-04-26T10:30:12.570 回答