私は英語の単語で数学を行うことができるプログラムを書こうとしています。jQueryで単語を使って数学を行うにはどうすればよいですか?
例えば、私は
"four thousand and three" + "seven thousand and twenty nine"
ような何かをして
"eleven thousand and thirty two"
のような出力がjQueryの中でこれを実行することが可能です取得することができるようにしたいですか?
私は英語の単語で数学を行うことができるプログラムを書こうとしています。jQueryで単語を使って数学を行うにはどうすればよいですか?
例えば、私は
"four thousand and three" + "seven thousand and twenty nine"
ような何かをして
"eleven thousand and thirty two"
のような出力がjQueryの中でこれを実行することが可能です取得することができるようにしたいですか?
はい、私はこの正確な目的のために作られたjQuery plug-in called Word Mathを書いています。あなたの質問では例えば
、あなただけコピーして、このコード
alert($.wordMath("four thousand and three").add("seven thousand and twenty nine"));
//alerts "eleven thousand thirty two"
と出来上がりを貼り付けることができます!あなたは何らかの言葉遣いをしました。
$.wordMath.toString(65401.90332)
// sixty five thousand four hundred one and nine tenths and three thousandths and three ten thousandths and two hundred thousandths
$.wordMath("three million four hundred and sixty seven thousand five hundred and forty two").value
// 3467542
You can read more about how to use the Word Math plugin on its readme page
EDIT:のjQueryに依存しないWordの数学のバージョンが用意されました
Wordの数学も言葉や、その逆にJavascriptの番号からの変換を行うことができます。これを使用するには、wordMath.jquery.js
ファイルではなく、wordMath.vanilla.min.js
ファイルをgitHubリポジトリにダウンロードする必要があります。
jQueryレスバージョンの使用法は、呼び出しに接頭語が$.
であることを除いて、jQueryバージョンとまったく同じです。代わりに
$.wordMath("fifteen").add("eighteen")
を行う言い換えれば、あなたの代わりにあなたがライブラリを使用することができますが、あなたがあなた自身のコードを書きたい場合は、このような何かを始めることができ
wordMath("fifteen").add("eighteen")
ご存知のように、文字列自体で数学演算を行うことはできませんので、テキストを数値に変換する必要があります。
数値に対する数学演算を実行した後、値を文字列に変換して出力することができます。
D'oh!私は「[URL]に行って、[awesome]プラグインをインストールして、SOの質問から.jsファイルにコピー&ペーストしてください!」と期待していました。 – Daniel
を記述します。
<script type="text/javascript">
var equation = "one plus two";
var arrayOfWords = equation.split(" ");
var functionToEvaluate = "";
for(i in arrayOfWords){
functionToEvaluate = functionToEvaluate + GetNumericOrSymbol(arrayOfWords[i]);
}
var answer = eval(functionToEvaluate);
alert(answer);
//Then your method GetNumericOrSymbol() could so something like this.
function GetNumericOrSymbol(word){
var assocArray = new Array();
assocArray['one'] = 1;
assocArray['two'] = 2;
//rest of the numbers to nine
assocArray['plus']='+';
//rest of your operators
return assocArray[word];
}
</script>
Arrayを関数呼び出しから取り除くのと同じように、最適化に役立ちます。これを書くのは楽しいものでした。
あなたの答えが得られたら、逆のプロセスを経て文字列を作ることができます。 –
はい、おそらくあります。何を試しましたか? –
私はまだ幸運に頼んでみた。 – Daniel
haha ...華麗 –