JS验证合法性

1. /**2. * 得到中英文字符长3. * @param {} str4. * @return {}5. */6. function LengthB(str){7. var

1. /**

2. * 得到中英文字符长

3. * @param {} str

4. * @return {}

5. */

6. function LengthB(str){

7. var p1 = new RegExp('u..', 'g')

8. var p2 = new RegExp('.', 'g')

9. return escape(str).replace(p1, '').replace(p2, '').length

10.}

11.

12./**

13.* 过滤所有空格字符

14.* @param {Object} str

15.*/

16.function jsTrim(str){

17. str = "";

18. while ((str.charAt(0) == ' ') || (str.charAt(0) == '???') |

| (escape(str.charAt(0)) == ' '))

19. str = str.substring(1, str.length);

20. while ((str.charAt(str.length - 1) == ' ') || (str.charAt(s

tr.length - 1) == '???') || (escape(str.charAt(str.length - 1)) == ' '))

21. str = str.substring(0, str.length - 1);

22. return str;

23.}

24.

25./**

26.* 过滤中间字符串和多个空格

27.* @param {Object} inputString

28.*/

29.function trim(inputString){

30. if (typeof inputString != "string") {

31. return inputString;

32. }

33. var retValue = inputString;

34. var ch = retValue.substring(0, 1);

35. while (ch == " ") {

36. //检查字符串开始部分的空格

37. retValue = retValue.substring(1, retValue.length);

38. ch = retValue.substring(0, 1);

39. }

,

40. ch = retValue.substring(retValue.length - 1, retValue.lengt

h);

41. while (ch == " ") {

42. //检查字符串结束部分的空格

43. retValue = retValue.substring(0, retValue.length - 1);

44. ch = retValue.substring(retValue.length - 1, retValue.l

ength);

45. }

46. while (retValue.indexOf(" ") != -1) {

47. //将文字中间多个相连的空格变为一个空格

48. retValue = retValue.substring(0, retValue.indexOf(" "))

retValue.substring(retValue.indexOf(" ") 1, retValue.length);

49. }

50. return retValue;

51.}

52.

53./**

54.* 过滤字符串, 指定过滤内容,如果内容为空,则默认过

滤 '~!@#$^&*()- ."

55.* @param {Object} str

56.* @param {Object} filterStr

57.*

58.* @return 包含过滤内容,返回True, 否则返回false;

59.*/

60.function FilterStr(str, filterStr){

61. filterStr = filterStr == "" ? "'~!@#$^&*()- ."" : filterS

tr

62. var ch;

63. var i;

64. var temp;

65. var error = false;//当包含非法字符时,返回True

66. for (i = 0; i <= (filterStr.length - 1); i ) {

67. ch = filterStr.charAt(i);

68. temp = str.indexOf(ch);

69. if (temp != -1) {

70. error = true;

71. break;

72. }

73. }

74. return error;

75.}

76.

,

77./**

78.* 过滤指定内容字符串

79.* @param {Object} str 检查字符串

80.* @param {Object} filterStr 过滤字符串,内容为空,则默认过

滤 '~!@#$^&*()- ."

81.* @param {Object} alertStr 弹出对话内容

82.* @param {Object} idStr 出错返回出错字段ID

83.*/

84.function ISFilterStr(str, filterStr, alertStr, idStr){

85. alertStr = "对不起, 您输入的 " alertStr " 不允包

含 " filterStr " 非法字符";

86. if (FilterStr(str, filterStr))

87. this.AlertAndRFalse(alertStr, idStr);

88.}

89.

90./**

91.* 检查是否为网址

92.* @param {} str_url

93.* @param {} alertStr 弹出字段内容

94.* @param {} idStr 光标定位的字段ID只能接收ID

95.* @return {Boolean} 不是网址返回false;

96.*/

97.function IsURL(str_url, alertStr, idStr){// 验证url

98.

99. alertStr = alertStr " 格式不正确!";

100. var strRegex = "^((https|http|ftp|rtsp|mms)?://)" 101. "?(([0-9a-z_!~*'().&= $-] : )?[0-9a-z_!~*'().&= $-]

@)?" // ftp的user@

102.

103. "(([0-9]{1,3}.){3}[0-9]{1,3}" // IP形式的

URL- 199.194.52.184

104.

105. "|" // 允许IP 和DOMAIN (域名)

106.

107. "([0-9a-z_!~*'()-] .)*" // 域名- www.

108.

109. "([0-9a-z][0-9a-z-]{0,61})?[0-9a-z]." // 二级域名 110.

111. "[a-z]{2,6})" // first level domain- .com or .museum

112.

113. "(:[0-9]{1,4})?" // 端口- :80

114.

,

115. "((/?)|" // a slash isn't required if there is no file

name

116.

117. "(/[0-9a-z_!~*'().;?:@&= $,#-] ) /?)$";

118. var re = new RegExp(strRegex);

119. if (!re.test(str_url))

120. this.AlertAndRFalse(alertStr, idStr);

121. }

122.

123. /**

124. * 检查是否为电子邮件

125. * @param {} str

126. * @param {} alertStr 弹出字段内容

127. * @param {} idStr 光标定位的字段ID只能接收ID 128. * @return {Boolean} 不是电子邮件返回false; 129. */

130. function IsEmail(str, alertStr, idStr){

131. alertStr = alertStr " 格式不正确!";

132. var re = /^([a-zA-Z0-9] [_|-|.]?)*[a-zA-Z0-9] @([a-z

A-Z0-9] [_|-|.]?)*[a-zA-Z0-9] .[a-zA-Z]{2,3}$/;

133. if (!re.test(str))

134. this.AlertAndRFalse(alertStr, idStr);

135. }

136.

137. /**

138. * 检查是否为数字

139. * @param {} str

140. * @param {} alertStr 弹出字段内容

141. * @param {} idStr 光标定位的字段ID只能接收ID 142. * @return {Boolean} 不是数字返回false;

143. */

144. function IsNum(str, alertStr, idStr){

145. alertStr = alertStr " 应该由数字组成!";

146. var re = /^[d] $/

147. if (!re.test(str))

148. this.AlertAndRFalse(alertStr, idStr);

149. }

150.

151. /**

152. * 检查数值是否在给定范围以内

153. * @param {} str_num

154. * @param {} moreLen 应该大于或者等于的数值

155. * @param {} lessLen 应该小于或者等于的数值

156. * @param {} alertStr 弹出字段内容

,

157. * @param {} idStr 光标定位的字段ID只能接收ID 158. * @return {Boolean} 小于最小数值或者大于最大数值

字返回false;

159. */

160. function IsRangeNum(str_num, moreLen, lessLen, alertStr, i

dStr){

161. IsNum(str_num, alertStr, idStr);

162. if (moreLen != "") {

163. alertStr = alertStr " 数值不能小

于 " moreLen;

164. if (str_num < moreLen)

165. this.AlertAndRFalse(alertStr, idStr); 166. }

167. if (lessLen != "") {

168. alertStr = alertStr " 数值不能大

于 " lessLen;

169. if (str_num > lessLen)

170. this.AlertAndRFalse(alertStr, idStr); 171. }

172. if (moreLen == "" && lessLen == "")

173. this.AlertAndRFalse("没有定义最大最小长

度!", idStr);

174. }

175.

176. /**

177. * 检查是否为合格字符串(不区分大小写)

178. * 长度在6至20位, 并且是由a-z0-9_组成的字符串

179. * @param {} str 检查的字符串

180. * @param {} alertStr 弹出字段内容

181. * @param {} idStr 光标定位的字段ID只能接收ID 182. * @return {Boolean} 不是"长度在6至20位且由a-z0-9_"

组成返回false;

183. */

184. function IsLicit(str, alertStr, idStr){

185. alertStr = "对不起," alertStr " 不能为空并且只能

由 0到9 a到z 下划线 的6到20位组成! ";

186. var re = /^[_0-9a-zA-Z]{6,20}$/

187. if (!re.test(str))

188. this.AlertAndRFalse(alertStr, idStr);

189. }

190.

191. /**

192. * 检查二个字符串是否相等

193. * @param {} str1 第一个字符串

,

194. * @param {} str2 第二个字符串

195. * @param {} alertStr 弹出字段内容

196. * @param {} idStr 光标定位的字段ID只能接收ID 197. * @return {Boolean} 字符串不相等返回false;

198. */

199. function IsStrEquals(str1, str2, alertStr, idStr){ 200. alertStr = "二次 " alertStr " 不一致!"; 201. if (str1 != str2)

202. this.AlertAndRFalse(alertStr, idStr);

203. }

204.

205. /**

206. * 检查字符串是否在给定长度范围以内(中文字符以2个字节计

算)

207. *

208. * @param {} str 检查的字符

209. * @param {} moreLen 应该大于或者等于的长度

210. * @param {} lessLen 应该小于或者等于的长度

211. * @param {} alertStr 弹出字段内容

212. * @param {} idStr 光标定位的字段ID只能接收ID 213. * @return {Boolean} 小于最小长度或者大于最大长度

字返回false;

214. */

215. function IsRange(str, moreLen, lessLen, alertStr, idStr){

216. var strLen = LengthB(str);

217. if (moreLen != "") {

218. alertStr = alertStr " 应该大于或等

于 " moreLen " 个字节长度!";

219. if (strLen < moreLen)

220. this.AlertAndRFalse(alertStr, idStr); 221. }

222. if (lessLen != "") {

223. alertStr = alertStr " 应该小于或等

于 " lessLen " 个字节长度!";

224. if (strLen > lessLen)

225. this.AlertAndRFalse(alertStr, idStr); 226. }

227. if (moreLen == "" && lessLen == "")

228. this.AlertAndRFalse("没有定义最大最小长

度!", idStr);

229. }

230.

231. /**

,

232. * 检查字符串是否小于给定长度范围(中文字符以2个字节计

算)

233. * @param {} str 字符串

234. * @param {} lessLen 小于或等于长度

235. * @param {} alertStr 弹出字段内容

236. * @param {} idStr 光标定位的字段ID只能接收ID 237. * @return {Boolean} 大于给定长度数字返回false; 238. */

239. function IsLess(str, lessLen, alertStr, idStr){ 240. IsRange(str, "", lessLen, alertStr, idStr); 241. }

242.

243. /**

244. * 检查字符不为空

245. * @param {} str

246. * @param {} alertStr 弹出字段内容

247. * @param {} idStr 光标定位的字段ID只能接收ID 248. * @return {Boolean} 字符为空返回false;

249. */

250. function IsEmpty(str, alertStr, idStr){

251. alertStr = alertStr " 不能为空!";

252. if (str == "")

253. this.AlertAndRFalse(alertStr, idStr);

254. }

255.

256. /**

257. * 弹出警示框, 并定位到出错字段上

258. * @param {} alertStr 弹出警告框内容

259. * @param {} idStr 返回字段焦点

260. * @return {Boolean} 返回false

261. */

262. function AlertAndRFalse(alertStr, idStr){

263. alert(alertStr);

264. document.getElementById(idStr).focus();

265. throw "valueErr";

266. }

267.

268. // JavaScript Document

269. function checkForm() {

270. try {

271. var title = trim(document.getElementById('t

itle')); //文章标题

272.

273. IsEmpty(title,"文章标题","title");//不可为空

,

274. IsLess(title,100,"文章标题","title");//标题应少于100

个字符长

275.

276. ISFilterStr(title, "~`!@#$^&*()-=_ []{}|;':",./<

>?", "文章标题","title")//标题不允许包含这些非法字符

277. } catch(err) {

278. if(err == "valueErr")

279. return false;

280. }

281. }

标签: