在Javascript中,如何查找字符串中的字符并将其放在变量之前的所有字符

问题描述:

在javascript中,我试图制作一个程序,它必须处理可以输入的分数,并且需要一个函数会根据用户规格将这种格式(“10/27”)中的一部分转换为10或27,但我不知道该如何编写此函数。任何代码或建议,让我开始将不胜感激。在Javascript中,如何查找字符串中的字符并将其放在变量之前的所有字符

可以将字符串分割成与split()阵列,然后在第一个或第二部分作为分子或分母:

function getNumerator(fraction) { 
    // fraction = "10/27" 
    return fraction.split("/")[0]; 
} 

function getDenominator(fraction) { 
    // fraction = "10/27" 
    return fraction.split("/")[1]; 
} 
+0

它的工作,谢谢! – jeffkmeng

var fraction = "10/27".split("/"); 
var numerator = fraction[0]; 
var denominator = fraction[1]; 

当然,你可以使用一个库它太:https://github.com/ekg/fraction.js

与此库的回答将是:

(new Fraction(10, 27)).numerator 
+1

感谢您的简单介绍 – jeffkmeng

您可以使用indexOf()在字符串中进行搜索。它返回搜索字符串的第一个位置。

如果要使用字符分割字符串,请使用split()。它会返回一个数组。因此,对于例如:在你的字符串27/10,的indexOf /是但如果你不拆,你会得到2个值,27和10

function splitString(str, searchStr) { 
 
    return str.split(searchStr); 
 
} 
 

 
function calculateValue(str) { 
 
    var searchStr = '/'; 
 
    var values = splitString(str, searchStr); 
 
    var result = parseInt(values[0])/parseInt(values[1]); 
 
    notify(str, result); 
 
} 
 

 
function notify(str, result) { 
 
    console.log(result); 
 
    document.getElementById("lblExpression").innerText = str; 
 
    document.getElementById("lblResult").innerText = result; 
 

 
} 
 

 
(function() { 
 
    var str = "27/10"; 
 
    calculateValue(str) 
 
})()
Expression: 
 
<p id="lblExpression"></p> 
 
Result: 
 
<p id="lblResult"></p>

的阵列
+0

您可以把它放在一个函数中吗? – jeffkmeng

+0

@jkm更新了我的答案。 – Rajesh

考虑str包含输入值然后,

a = str.substring(str.indexOf("/")+1); 
b = str.substring(0, str.indexOf("/")); 

输出: 如果str是"10/17"然后,

a == 17; 
b == 10; 
+0

当我尝试这个,b只给了我1,而不是10. – jeffkmeng

+0

对不起,我没有测试过。现在它工作完美。 – Rejaul