半角数字のみは上記のように
[^0-9]だと「数字以外」では? → [0-9]もしくは\d
10桁のみ
{10} でどうでしょう?
そうじて、/^\d{10}$/
追記
元のソースを最大限使うと、「0-9以外」「9文字以内」「11文字以上」の3つをチェックする必要があります
javascript
1<script>
2window.addEventListener('DOMContentLoaded', function(e){
3 document.querySelector('#hoge').addEventListener('input',function(e){
4 document.querySelector('#check1').value=check1()?"ok":"ng";
5 document.querySelector('#check2').value=check2()?"ok":"ng";
6 });
7});
8function check1(){
9 var flag = 0;
10 if(document.querySelector('#hoge').value.match(/[^0-9]+|^.{0,9}$|.{11}/)){
11 flag = 1;
12 }
13 if(flag){
14 return false;
15 }else{
16 return true;
17 }
18}
19function check2(){
20 return document.querySelector('#hoge').value.match(/^\d{10}$/);
21}
22</script>
23<form>
24<input type="text" id="hoge" name="hoge"><br>
25check1:<input type="text" id="check1"><br>
26check2:<input type="text" id="check2"><br>
27</form>