日期:2010-08-05  浏览次数:20893 次

 <script language=VBs>
  my_string = "A110B121C119D1861"
  a_value = mid(my_string,2,3)
  alert(a_value)
  </script>

 但设想一下:如果不是“110”,而是“1100”,那是不是要提取4位……这样就显出程序的不够完美。 

 所以继续思考:所提取的值,永远是在字母“A”后面的,且值也永远是在字母“A”和“B”之间的,那么只要分别提取出“A”、“B”的位置,则中间数值的起始位应是字母“A”位+1,中间数值的长度应是字母“B”位-字母“A”位-1

    那么现在就可以让程序完美起来:

  <script language=vbs>
  my_string = "A110B121C119D1861"
  a_num = instr(my_string,"A")
  b_num = instr(my_string,"B")
  a_value = mid(my_string,a_num+1,b_num-a_num-1)
  alert(a_value)
  </script>

 OK,那么现在你也就完全可以把字母“B”、“C”、“D”后面的值一一提取了。

  当然需要注意的就是“D”后面有几位怎么取呢?采用字符串总长度-字母D所在位置数就可以了。

  <script language=vbs>
  my_string = "A110B121C119D1861"
  a_num = instr(my_string,"A")
  b_num = instr(my_string,"B")
  c_num = instr(my_string,"C")
  d_num = instr(my_string,"D")
  total_num = len(my_string)
  a_value = mid(my_string,a_num+1,b_num-a_num-1)
  b_value = mid(my_string,b_num+1,c_num-b_num-1)
  c_value = mid(my_string,c_num+1,d_num-c_num-1)
  d_value = mid(my_string,d_num+1,total_num-d_num)
  alert(a_value)
  alert(b_value)
  alert(c_value)
  alert(d_value)
  </script>