如何在第二个“ - ”之前抓取字符串?

时间:2015-02-27 17:17:33

标签: javascript jquery

var string =" bs-00-xyz&#34 ;;

第二个破折号检测到后,我想在第二个破折号之前抓住任何东西,在这种情况下 bs-00

我不确定最有效的方法是什么,这就是我想出的。

JSFiddle = http://jsfiddle.net/bheng/tm3pr1h9/

HTML

<input id="searchbox" placeholder="Enter SKU or name to check availability " type="text" />

JS

$("#searchbox").keyup(function() {

        var query = this.value;
        var count = (query.match(/-/g) || []).length;
        if( count == 2 ){

            var results = query.split('-');
            var new_results = results.join('-')
            alert( "Value before the seond - is : " + new_results );
        }


}); 

5 个答案:

答案 0 :(得分:4)

你可以在没有正则表达式的情况下使用此

myString.split('-').splice(0, 2).join('-');

答案 1 :(得分:2)

如果你的字符串中有两个以上的破折号......

var myString = string.substr(0, string.indexOf('-', string.indexOf('-') + 1));

答案 2 :(得分:1)

使用正则表达式匹配:

var string = "bs-00-xyz";
newstring = string.match(/([^-]+-[^-]+)-/i);

// newstring = "bs-00"

这适用于具有两个以上破折号的字符串。

示例:

var string = "bs-00-xyz-asdf-asd";

答案 3 :(得分:1)

我觉得分裂角色是一种很好的方法,但只是出于各种各样的考虑......你可以使用正则表达式。

var match = yourString.match(/^([^\-]*\-[^\-]*)\-/);

该表达式将返回您要查找的字符串match[1](如果找不到这样的字符串,则返回null)。

答案 4 :(得分:0)

您需要使用lastIndexOf jsfiddle,请查看此示例

链接更新...