JSFiddle - React, Tailwind, and code Playground

HTML

<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css">
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.min.js"></script>
<div class="input-group mb-3">
  <div class="input-group-prepend">
    <span class="input-group-text">問題</span>
  </div>
	<input id="question" type="text" class="form-control" value="這個數,它除1余0,它除22余7,它除66余7,它除107余100" placeholder="它除A余B,它除C余D,它除E余F,它除G余H"/>
</div>
<div class="input-group mb-3">
  <div class="input-group-prepend">
    <span class="input-group-text">指令</span>
  </div>
	<input id="answer" type="text" class="form-control" readonly/>
</div>

CSS

body {
  margin: 1ex;
}

JavaScript

const REGEX_QUESTION = /它除(\d+)余(\d+)/g;
const input = document.getElementById('question');
const output = document.getElementById('answer');
let solve = event => {
	output.value = '';
	let match;
	let pairs = [];
	while (match=REGEX_QUESTION.exec(input.value)) {
		pairs.push({divisor: parseInt(match[1], 10), reminder: parseInt(match[2], 10)});
	}
	if (pairs.length) {
		let answers = findNumber(pairs);
		if (answers.length) {
			output.value = `do ${answers.map(a => `turn ${a}`).join(',')}`;
      setTimeout(() => output.select(), 1);
			return;
		}
		else {
			output.value = '???';
		}
	}
};
let findNumber = pairs => {
	let inc = 0;
	let offset = 0;
	for (let i=0; i<pairs.length; i++) {
		if (pairs[i].divisor > inc) {
			inc = pairs[i].divisor;
			offset = pairs[i].reminder;
		}
	}
	let answers = [];
	for (let num=offset; num<10000; num+=inc) {
		if (pairs.every(pair => num % pair.divisor == pair.reminder)) {
			answers.push(num);
		}
	}
	return answers;
}
input.addEventListener('change', solve, false);
input.addEventListener('keyup', event => {
	if (event.key === 'v' && event.ctrlKey) solve(event);
}, false);
[input, output].forEach(i => i.addEventListener('focus', e => e.target.select()));
solve();