我把代码都发上来算了.
<html>
<head>
<style>
span{margin:0}
</style>
<script language="javascript">
function dosix(str){
var re=new RegExp();
re=str;
if(re.search(/([0-9]{1}|([0-4][0-9]){1})(\.[0-9]{1}|([0-4][0-9]){1})*(\*\d){1}/)==-1) {alert("输入错误");return false;}
bs=re.match(/(\d*)$/g)[0]
re=re.replace(/\*{1}\d*/,"").split(".")
for(i=0;i<re.length;i++){
if(document.getElementById("no"+re[i]).innerText==""){
document.getElementById("no"+re[i]).innerText=bs
}else{
document.getElementById("no"+re[i]).innerText+="+"+bs
}
}
document.all.inp1.value=""
}
</script>
</head>
<body onLoad="document.all.inp1.focus()">
<div>
<form onSubmit="dosix(document.all.inp1.value);return false;" style="margin:0">
输入:<input id=inp1 type="text" size="60" value="1.3.7.49.26.29.30.22.21*10"><br />
<button>准备打印</button>
</form>
</div>
<table width="100%" border="1" cellpadding="0" cellspacing="0" bordercolor="#000000">
<tr>
<td width="2%">1</td>
<td width="48%"><span id=no1></span></td>
<td width="2%">26</td>
<td width="48%"><span id=no26></span></td>
</tr>
<tr>
<td>2</td>
<td><span id=no2></span></td>
<td>27</td>
<td><span id=no27></span></td>
</tr>
<tr>
<td>3</td>
<td><span id=no3></span></td>
<td>28</td>
<td><span id=no28></span></td>
</tr>
<tr>
<td>4</td>
<td><span id=no4></span></td>
<td>29</td>
<td><span id=no29></span></td>
</tr>
<tr>
<td>5</td>
<td><span id=no5></span></td>
<td>30</td>
<td><span id=no30></span></td>
</tr>
<tr>
<td>6</td>
<td><span id=no6></span></td>
<td>31</td>
<td><span id=no31></span></td>
</tr>
<tr>
<td>7</td>
<td><span id=no7></span></td>
<td>32</td>
<td><span id=no32></span></td>
</tr>
<tr>
<td>8</td>
<td><span id=no8></span></td>
<td>33</td>
<td><span id=no33></span></td>
</tr>
<tr>
<td>9</td>
<td><span id=no9></span></td>
<td>34</td>
<td><span id=no34></span></td>
</tr>
<tr>
<td>10</td>
<td><span id=no10></span></td>
<td>35</td>
<td><span id=no35></span></td>
</tr>
<tr>
<td>11</td>
<td><span id=no11></span></td>
<td>36</td>
<td><span id=no36></span></td>
</tr>
<tr>
<td>12</td>
<td><span id=no12></span></td>
<td>37</td>
<td><span id=no37></span></td>
</tr>
<tr>
<td>13</td>
<td><span id=no13></span></td>
<td>38</td>
<td><span id=no38></span></td>
</tr>
<tr>
<td>14</td>
<td><span id=no14></span></td>
<td>39</td>
<td><span id=no39></span></td>
</tr>
<tr>
<td>15</td>
<td><span id=no15></span></td>
<td>40</td>
<td><span id=no40></span></td>
</tr>
<tr>
<td>16</td>
<td><span id=no16></span></td>
<td>41</td>
<td><span id=no41></span></td>
</tr>
<tr>
<td>17</td>
<td><span id=no17></span></td>
<td>42</td>
<td><span id=no42></span></td>
</tr>
<tr>
<td>18</td>
<td><span id=no18></span></td>
<td>43</td>
<td><span id=no43></span></td>
</tr>
<tr>
<td>19</td>
<td><span id=no19></span></td>
<td>44</td>
<td><span id=no44></span></td>
</tr>
<tr>
<td>20</td>
<td><span id=no20></span></td>
<td>45</td>
<td><span id=no45></span></td>
</tr>
<tr>
<td>21</td>
<td><span id=no21></span></td>
<td>46</td>
<td><span id=no46></span></td>
</tr>
<tr>
<td>22</td>
<td><span id=no22></span></td>
<td>47</td>
<td><span id=no47></span></td>
</tr>
<tr>
<td>23</td>
<td><span id=no23></span></td>
<td>48</td>
<td><span id=no48></span></td>
</tr>
<tr>
<td>24</td>
<td><span id=no24></span></td>
<td>49</td>
<td><span id=no49></span></td>
</tr>
<tr>
<td>25</td>
<td><span id=no25></span></td>
<td>50</td>
<td><span id=no50></span></td>
</tr>
</table>
</body>
</html>
<html>
<head>
<style>
span{margin:0}
</style>
<script language="javascript">
function dosix(str){
var re=new RegExp();
re=str;
if(re.search(/([0-9]{1}|([0-4][0-9]){1})(\.[0-9]{1}|([0-4][0-9]){1})*(\*\d){1}/)==-1) {alert("输入错误");return false;}
bs=re.match(/(\d*)$/g)[0]
re=re.replace(/\*{1}\d*/,"").split(".")
for(i=0;i<re.length;i++){
if(document.getElementById("no"+re[i]).innerText==""){
document.getElementById("no"+re[i]).innerText=bs
}else{
document.getElementById("no"+re[i]).innerText+="+"+bs
}
}
document.all.inp1.value=""
}
</script>
</head>
<body onLoad="document.all.inp1.focus()">
<div>
<form onSubmit="dosix(document.all.inp1.value);return false;" style="margin:0">
输入:<input id=inp1 type="text" size="60" value="1.3.7.49.26.29.30.22.21*10"><br />
<button>准备打印</button>
</form>
</div>
<table width="100%" border="1" cellpadding="0" cellspacing="0" bordercolor="#000000">
<tr>
<td width="2%">1</td>
<td width="48%"><span id=no1></span></td>
<td width="2%">26</td>
<td width="48%"><span id=no26></span></td>
</tr>
<tr>
<td>2</td>
<td><span id=no2></span></td>
<td>27</td>
<td><span id=no27></span></td>
</tr>
<tr>
<td>3</td>
<td><span id=no3></span></td>
<td>28</td>
<td><span id=no28></span></td>
</tr>
<tr>
<td>4</td>
<td><span id=no4></span></td>
<td>29</td>
<td><span id=no29></span></td>
</tr>
<tr>
<td>5</td>
<td><span id=no5></span></td>
<td>30</td>
<td><span id=no30></span></td>
</tr>
<tr>
<td>6</td>
<td><span id=no6></span></td>
<td>31</td>
<td><span id=no31></span></td>
</tr>
<tr>
<td>7</td>
<td><span id=no7></span></td>
<td>32</td>
<td><span id=no32></span></td>
</tr>
<tr>
<td>8</td>
<td><span id=no8></span></td>
<td>33</td>
<td><span id=no33></span></td>
</tr>
<tr>
<td>9</td>
<td><span id=no9></span></td>
<td>34</td>
<td><span id=no34></span></td>
</tr>
<tr>
<td>10</td>
<td><span id=no10></span></td>
<td>35</td>
<td><span id=no35></span></td>
</tr>
<tr>
<td>11</td>
<td><span id=no11></span></td>
<td>36</td>
<td><span id=no36></span></td>
</tr>
<tr>
<td>12</td>
<td><span id=no12></span></td>
<td>37</td>
<td><span id=no37></span></td>
</tr>
<tr>
<td>13</td>
<td><span id=no13></span></td>
<td>38</td>
<td><span id=no38></span></td>
</tr>
<tr>
<td>14</td>
<td><span id=no14></span></td>
<td>39</td>
<td><span id=no39></span></td>
</tr>
<tr>
<td>15</td>
<td><span id=no15></span></td>
<td>40</td>
<td><span id=no40></span></td>
</tr>
<tr>
<td>16</td>
<td><span id=no16></span></td>
<td>41</td>
<td><span id=no41></span></td>
</tr>
<tr>
<td>17</td>
<td><span id=no17></span></td>
<td>42</td>
<td><span id=no42></span></td>
</tr>
<tr>
<td>18</td>
<td><span id=no18></span></td>
<td>43</td>
<td><span id=no43></span></td>
</tr>
<tr>
<td>19</td>
<td><span id=no19></span></td>
<td>44</td>
<td><span id=no44></span></td>
</tr>
<tr>
<td>20</td>
<td><span id=no20></span></td>
<td>45</td>
<td><span id=no45></span></td>
</tr>
<tr>
<td>21</td>
<td><span id=no21></span></td>
<td>46</td>
<td><span id=no46></span></td>
</tr>
<tr>
<td>22</td>
<td><span id=no22></span></td>
<td>47</td>
<td><span id=no47></span></td>
</tr>
<tr>
<td>23</td>
<td><span id=no23></span></td>
<td>48</td>
<td><span id=no48></span></td>
</tr>
<tr>
<td>24</td>
<td><span id=no24></span></td>
<td>49</td>
<td><span id=no49></span></td>
</tr>
<tr>
<td>25</td>
<td><span id=no25></span></td>
<td>50</td>
<td><span id=no50></span></td>
</tr>
</table>
</body>
</html>
如果用string.match()的话,能匹配1.23.3.49*22,不能匹配1.23.3.59*22,但是我不知道为什么还会匹配1,.49,49,*2这四项,如果/(\d{1}|[0-4]{1}\d{1})(\.(\d{1}|[0-4]{1}\d{1}))*(\*\d)/g就只会匹配1.23.3.49*22晕了,我也是正则新手,等待高手来答疑.
/[0-49]+(\.[0-49])*(\*\d){1}/ 正则会这么理解如下:
可以匹配:0.12*22
可以匹配:0.12.34*22
可以匹配:0*22 这个最重要,也就是说:(\.[0-49])* 可以匹配零次或多次
所以:1.23.3.59*22 匹配 /[0-49]+(\.[0-49])*(\*\d){1}/ 等于true
所以:1*22 匹配 /[0-49]+(\.[0-49])*(\*\d){1}/ 等于true
希望楼主能明白我的意思!!!!!!!!!!!!!!!
<head>
<title>无标题页</title>
</head>
<body>
<script>
var a=/^((\d|[1-4][0-9])\.){3}(\d|[1-4][0-9])\*(\d|[1-4][0-9])$/gi;
var str="1.23.3.49*22";
alert(a.test(str));
</script>
</body>
</html>
能解释一下你的正则么?
就是 匹配以个一位数和 一个不以0开头的 两位数字
其中不大于49
9*22 对 /[0-49]+(\.[0-49])*(\*\d){1}/ 是会匹配成功的,因此/[0-49]+(\.[0-49])*(\*\d){1}/.test("1.23.3.49*22") 结果肯定是true
我是复制你的代码的,什么都没做修改直接运行就是false.
不过你贴的代码里|好像用的是中文符号?我改成英文的,依然false...
再麻烦大家想想啦.谢谢
var reg = /^((\d|[1-4][0-9])\.)+(\d|[1-4][0-9])\*(\d|[1-4][0-9])$/gi;
var str = "1.23.3.49.49*22";
document.write(reg.test(str)); //测试返回true
/^(([1-9]|[1-4][0-9])\.)*([1-9]|[1-4][0-9])\*\d+$/gi
顺便问问,红色部分如果我想匹配的是非0开头的任意数字,能怎么改么?再次谢谢大家~