81 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			81 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
<!DOCTYPE html>
 | 
						|
<html lang="en">
 | 
						|
<head>
 | 
						|
  <meta charset="utf-8">
 | 
						|
  <title>math.js | custom separators</title>
 | 
						|
  <style>
 | 
						|
    body, input, select {
 | 
						|
      font: 11pt sans-serif;
 | 
						|
    }
 | 
						|
    input, select, th, #result {
 | 
						|
      padding: 5px 10px;
 | 
						|
    }
 | 
						|
    th {
 | 
						|
      text-align: left;
 | 
						|
    }
 | 
						|
  </style>
 | 
						|
 | 
						|
  <script src="../../lib/browser/math.js"></script>
 | 
						|
</head>
 | 
						|
<body>
 | 
						|
 | 
						|
<p>
 | 
						|
  This code example shows how to apply custom separators for function arguments and decimal separator.
 | 
						|
</p>
 | 
						|
 | 
						|
<table>
 | 
						|
  <tr>
 | 
						|
    <th>Argument separator</th>
 | 
						|
    <td>
 | 
						|
      <input id="args" type="text" value=";">
 | 
						|
    </td>
 | 
						|
  </tr>
 | 
						|
  <tr>
 | 
						|
    <th>Decimal separator</th>
 | 
						|
    <td>
 | 
						|
      <input id="decimals" type="text" value=",">
 | 
						|
    </td>
 | 
						|
  </tr>
 | 
						|
  <tr>
 | 
						|
    <th>Expression</th>
 | 
						|
    <td>
 | 
						|
      <input id="expression" type="text" value="sum(3,4; 2,1; 2,0)" />
 | 
						|
      <input id="evaluate" type="button" value="Evaluate">
 | 
						|
    </td>
 | 
						|
  </tr>
 | 
						|
  <tr>
 | 
						|
    <th>Result</th>
 | 
						|
    <td id="result"></td>
 | 
						|
  </tr>
 | 
						|
</table>
 | 
						|
 | 
						|
<script>
 | 
						|
  // pointers to the input elements
 | 
						|
  const expression = document.getElementById('expression')
 | 
						|
  const evaluate   = document.getElementById('evaluate')
 | 
						|
  const result     = document.getElementById('result')
 | 
						|
  const args       = document.getElementById('args')
 | 
						|
  const decimals   = document.getElementById('decimals')
 | 
						|
 | 
						|
  // attach event handler to the button
 | 
						|
  evaluate.onclick = function () {
 | 
						|
    // replace the custom separators in the input with the default separators
 | 
						|
    const expr = expression.value
 | 
						|
        .replace(new RegExp('\\' + decimals.value + '|\\' + args.value, 'g'), function (match) {
 | 
						|
          return match === decimals.value ? '.': ','
 | 
						|
        })
 | 
						|
 | 
						|
    // do the actual evaluation
 | 
						|
    const res = math.evaluate(expr)
 | 
						|
 | 
						|
    // replace the default separators in the output with custom separators
 | 
						|
    result.innerHTML = res.toString()
 | 
						|
        .replace(new RegExp(',|\\.', 'g'), function (match) {
 | 
						|
          return match === '.' ? decimals.value : args.value
 | 
						|
        })
 | 
						|
  }
 | 
						|
</script>
 | 
						|
 | 
						|
 | 
						|
</body>
 | 
						|
</html> |