使用jQuery查找和替换通配符文本

时间:2016-02-29 12:42:56

标签: javascript jquery

我是jQuery / JS的新手,并想知道如何执行以下操作:

Big Sofa - Pink
Big Sofa - Blue
Small Sofa - Red
Small Sofa - Grey

我需要做的是删除之前的所有文本,包括“ - ”,这样它只显示颜色,需要通配符,以便得到任何内容并替换为空。

这可能吗?

5 个答案:

答案 0 :(得分:0)

试试这个简单的

var a = "Big Sofa - Pink\nBig Sofa - Blue\nSmall Sofa - Red\nSmall Sofa - Grey"

var newA = a.split( "\n" ).map( function(value){ return value.split( "-" ).pop() } ).join( "\n" );

console.log( newA );

答案 1 :(得分:0)

最好的办法是使用正则表达式。

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions

var text = 'Big Sofa - Pink';

var color = text.replace(/^.+?- (\w+)$/i, '$1'); // Pink

^匹配字符串
的开头 .匹配任何字符,包括空格
+表示前面的匹配器必须出现1次或更多次 乘数后的?表示匹配是非贪婪的(匹配最小可能)
-字面上与短划线和空格相匹配 (\w+)匹配由1个或多个单词字符(字母,数字和下划线)组成的任何单词,并在组中捕获其值(在本例中为组1)
$匹配字符串的结尾 i(在结尾处)表示匹配不区分大小写

替换字符串($1)用捕获组1的内容替换整个匹配。在我们的例子中,它匹配颜色。

答案 2 :(得分:0)

此正则表达式适用于多行字符串:

var str  = 'Big Sofa - Pink\nBig Sofa - Blue\nSmall Sofa - Red\nSmall Sofa - Grey';

str.replace(/.+\-\s*/g, '').split(/\n/);

答案 3 :(得分:0)

你可以做为

var text = "Big Sofa - Pink";
var color = text.substring(text.indexOf("-") + 1)

答案 4 :(得分:0)

我建议使用正则表达式。 以下是您为每个条目使用span的示例:



$(document).ready(function() {

  $("span").each(function() {
    var text = $(this).text();
    
    text = text.replace(/(\w+\s)+-\s/g, "");
    $(this).text(text);
  });
  
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span>Sofa test - red</span>
<span>Table test - blue</span>
&#13;
&#13;
&#13;