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 );
}
});
答案 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,请查看此示例
链接更新...