javascript在字符前获取字符串

Kei*_*wer 22 javascript jquery

我有一个字符串,我试图在引用之前提取字符.

例子是从14' - 14.99美元中提取14

我正在使用以下代码来实现这一目标.

$menuItem.text().match(/[^']*/)[0]
Run Code Online (Sandbox Code Playgroud)

我的问题是,如果字符串是€0.88,我希望得到一个空字符串返回.但是我收回了€0.88的全部字符串.

我在比赛中做错了什么?

3on*_*3on 38

这是你应该用来分割的东西:

string.slice(0, string.indexOf("'"));
Run Code Online (Sandbox Code Playgroud)

然后处理你不存在的价值边缘情况:

function split(str) {
 var i = str.indexOf("'");

 if(i > 0)
  return  str.slice(0, i);
 else
  return "";     
}
Run Code Online (Sandbox Code Playgroud)

JsFiddle上的演示

  • 为什么不在变量中保存值`str.indexOf()`,这样你就不必搜索字符串两次? (3认同)

jfr*_*d00 6

似乎没有人提出我认为最安全,最明显的选项,涵盖了OP所提出的每个案例,所以我想我会提供这个:

function getCharsBefore(str, chr) {
    var index = str.indexOf(chr);
    if (index != -1) {
        return(str.substring(0, index));
    }
    return("");
}
Run Code Online (Sandbox Code Playgroud)


小智 5

尝试这个

str.substring(0,str.indexOf("'"));
Run Code Online (Sandbox Code Playgroud)