常用的正则表达式集锦

2023-11-16

常用的正则表达式集锦

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

144

145

146

147

148

149

150

151

152

153

154

155

156

157

158

159

160

161

162

163

164

165

166

167

168

169

170

171

172

173

174

175

176

177

178

179

180

181

182

183

184

185

186

187

188

189

190

191

192

193

194

195

196

197

198

199

200

201

202

203

204

205

206

207

208

209

210

211

212

213

214

215

216

217

218

219

220

221

222

223

224

225

226

227

228

229

230

231

232

233

234

235

236

237

238

239

240

241

242

243

244

245

246

247

248

249

250

251

252

253

254

255

256

257

258

259

260

261

262

263

264

265

266

267

268

269

270

271

272

273

274

275

276

277

278

279

280

281

282

283

284

285

286

287

288

289

290

291

292

293

294

295

296

297

298

299

300

301

302

303

304

305

306

307

308

309

310

311

312

313

314

315

316

317

318

319

320

321

322

323

324

325

326

327

328

329

330

331

332

333

334

335

336

337

338

339

340

341

342

343

344

345

346

347

348

349

350

351

352

353

354

355

356

357

358

359

360

361

362

363

364

365

366

367

368

369

370

371

372

373

374

375

376

377

378

379

380

381

382

383

384

385

386

387

388

389

390

391

392

393

394

395

396

397

398

399

400

401

402

403

404

405

406

407

408

409

410

411

412

413

414

415

416

417

418

419

420

421

422

423

424

425

426

427

428

429

430

431

432

433

434

435

436

437

438

439

440

441

442

443

444

445

446

447

448

449

450

451

452

453

454

455

456

457

458

459

460

461

462

463

464

465

466

467

468

469

470

471

472

473

474

475

476

477

478

479

480

481

482

483

484

485

486

487

488

489

490

491

492

493

494

495

496

497

498

499

500

501

502

503

504

505

506

507

508

509

510

511

512

513

514

515

516

517

518

519

520

521

522

523

1.验证数字:

只能输入1个数字

  

表达式 ^\d$

描述 匹配一个数字

匹配的例子 0,1,2,3

不匹配的例子

2.只能输入n个数字

表达式 ^\d{n}$  例如^\d{8}$

描述 匹配8个数字

匹配的例子 12345678,22223334,12344321

不匹配的例子

3.只能输入至少n个数字

表达式 ^\d{n,}$ 例如^\d{8,}$

描述 匹配最少n个数字

匹配的例子 12345678,123456789,12344321

不匹配的例子

4.只能输入m到n个数字

表达式 ^\d{m,n}$ 例如^\d{7,8}$

描述 匹配m到n个数字

匹配的例子 12345678,1234567

不匹配的例子 123456,123456789

5.只能输入数字

表达式 ^[0-9]*$

描述 匹配任意个数字

匹配的例子 12345678,1234567

不匹配的例子 E,清清月儿

6.只能输入某个区间数字

表达式 ^[12-15]$

描述 匹配某个区间的数字

匹配的例子 12,13,14,15

不匹配的例子

7.只能输入0和非0打头的数字

表达式 ^(0|[1-9][0-9]*)$

描述 可以为0,第一个数字不能为0,数字中可以有0

匹配的例子 12,10,101,100

不匹配的例子 01,清清月儿,http://blog.csdn.net/21aspnet

8.只能输入实数

表达式 ^[-+]?\d+(\.\d+)?$

描述 匹配实数

匹配的例子 18,+3.14,-9.90

不匹配的例子 .6,33s,67-99

9.只能输入n位小数的正实数

表达式 ^[0-9]+(.[0-9]{n})?$以^[0-9]+(.[0-9]{2})?$为例

描述 匹配n位小数的正实数

匹配的例子 2.22

不匹配的例子 2.222,-2.22,http://blog.csdn.net/21aspnet

10.只能输入m-n位小数的正实数

表达式 ^[0-9]+(.[0-9]{m,n})?$以^[0-9]+(.[0-9]{1,2})?$为例

描述 匹配m到n位小数的正实数

匹配的例子 2.22,2.2

不匹配的例子 2.222,-2.2222,http://blog.csdn.net/21aspnet

11.只能输入非0的正整数

表达式 ^\+?[1-9][0-9]*$

描述 匹配非0的正整数

匹配的例子 2,23,234

不匹配的例子 0,-4,

12.只能输入非0的负整数

表达式 ^\-[1-9][0-9]*$

描述 匹配非0的负整数

匹配的例子 -2,-23,-234

不匹配的例子 0,4,

13.只能输入n个字符

表达式 ^.{n}$ 以^.{4}$为例

描述 匹配n个字符,注意汉字只算1个字符

匹配的例子 1234,12we,123清,清清月儿

不匹配的例子 0,123,123www,http://blog.csdn.net/21aspnet/

14.只能输入英文字符

表达式 ^.[A-Za-z]+$为例

描述 匹配英文字符,大小写任意

匹配的例子 Asp,WWW,

不匹配的例子 0,123,123www,http://blog.csdn.net/21aspnet/

15.只能输入大写英文字符

表达式 ^.[A-Z]+$为例

描述 匹配英文大写字符

匹配的例子 NET,WWW,

不匹配的例子 0,123,123www,

16.只能输入小写英文字符

表达式 ^.[a-z]+$为例

描述 匹配英文大写字符

匹配的例子 asp,csdn

不匹配的例子 0,NET,WWW,

17.只能输入英文字符+数字

表达式 ^.[A-Za-z0-9]+$为例

描述 匹配英文字符+数字

匹配的例子 1Asp,W1W1W,

不匹配的例子 0,123,123,www,http://blog.csdn.net/21aspnet/

18.只能输入英文字符/数字/下划线

表达式 ^\w+$为例

描述 匹配英文字符或数字或下划线

匹配的例子 1Asp,WWW,12,1_w

不匹配的例子 3#,2-4,w#$,http://blog.csdn.net/21aspnet/

19.密码举例

表达式 ^.[a-zA-Z]\w{m,n}$

描述 匹配英文字符开头的m-n位字符且只能数字字母或下划线

匹配的例子

不匹配的例子

20.验证首字母大写

表达式 \b[^\Wa-z0-9_][^\WA-Z0-9_]*\b

描述 首字母只能大写

匹配的例子 Asp,Net

不匹配的例子 http://blog.csdn.net/21aspnet/

21.验证网址(带?id=中文)VS.NET2005无此功能

表达式 ^http:\/\/([\w-]+(\.[\w-]+)+(\/[\w-   .\/\?%&=\u4e00-\u9fa5]*)?)?$

  

描述 验证带?id=中文

匹配的例子 http://blog.csdn.net/21aspnet/,

http://blog.csdn.net?id=清清月儿

不匹配的例子

22.验证汉字

表达式 ^[\u4e00-\u9fa5]{0,}$

描述 只能汉字

匹配的例子 清清月儿

不匹配的例子 http://blog.csdn.net/21aspnet/

23.验证QQ号

表达式 [0-9]{5,9}

描述 5-9位的QQ号

匹配的例子 10000,123456

不匹配的例子 10000w,http://blog.csdn.net/21aspnet/

24.验证电子邮件(验证MSN号一样)

表达式 \w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*

描述 注意MSN用非hotmail.com邮箱也可以

匹配的例子 aaa@msn.com

不匹配的例子 111@1.   http://blog.csdn.net/21aspnet/

25.验证身份证号(粗验,最好服务器端调类库再细验证)

表达式 ^[1-9]([0-9]{16}|[0-9]{13})[xX0-9]$

描述

匹配的例子 15或者18位的身份证号,支持带X的

不匹配的例子 http://blog.csdn.net/21aspnet/

26.验证手机号(包含159,不包含小灵通)

表达式 ^13[0-9]{1}[0-9]{8}|^15[9]{1}[0-9]{8}

描述 包含159的手机号130-139

匹配的例子 139XXXXXXXX

不匹配的例子 140XXXXXXXX,http://blog.csdn.net/21aspnet/

27.验证电话号码号(很复杂,VS.NET2005给的是错的)

表达式(不完美) 方案一  ((\(\d{3}\)|\d{3}-)|(\(\d{4}\)|\d{4}-))?(\d{8}|\d{7})

方案二 (^[0-9]{3,4}\-[0-9]{3,8}$)|(^[0-9]{3,8}$)|(^\([0-9]{3,4}\)[0-9]{3,8}$)|(^0{0,1}13[0-9]{9}$)  支持手机号但也不完美

描述 上海:02112345678   3+8位

上海:021-12345678

上海:(021)-12345678

上海:(021)12345678

郑州:03711234567    4+7位

杭州:057112345678    4+8位

还有带上分机号,国家码的情况

由于情况非常复杂所以不建议前台做100%验证,到目前为止似乎也没有谁能写一个包含所有的类型,其实有很多情况本身就是矛盾的。

如果谁有更好的验证电话的请留言

  

匹配的例子

不匹配的例子

28.验证护照

表达式 (P\d{7})|G\d{8})

  

描述 验证P+7个数字和G+8个数字

匹配的例子

不匹配的例子 清清月儿,http://blog.csdn.net/21aspnet/

29.验证IP

表达式 ^(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])$

  

描述 验证IP

匹配的例子 192.168.0.1   222.234.1.4

不匹配的例子

30.验证域

表达式 ^[a-zA-Z0-9]+([a-zA-Z0-9\-\.]+)?\.s|)$

  

描述 验证域

匹配的例子 csdn.net   baidu.com  it.com.cn

不匹配的例子 192.168.0.1

31.验证信用卡

表达式 ^((?:4\d{3})|(?:5[1-5]\d{2})|(?:6011)|(?:3[68]\d{2})|(?:30[012345]\d))[ -]?(\d{4})[ -]?(\d{4})[ -]?(\d{4}|3[4,7]\d{13})$

  

描述 验证VISA卡,万事达卡,Discover卡,美国运通卡

匹配的例子

不匹配的例子

32.验证ISBN国际标准书号

表达式 ^(\d[- ]*){9}[\dxX]$

  

描述 验证ISBN国际标准书号

匹配的例子 7-111-19947-2

不匹配的例子

33.验证GUID全球唯一标识符

表达式 ^[A-Z0-9]{8}-[A-Z0-9]{4}-[A-Z0-9]{4}-[A-Z0-9]{4}-[A-Z0-9]{12}$

  

描述 格式8-4-4-4-12

匹配的例子 2064d355-c0b9-41d8-9ef7-9d8b26524751

不匹配的例子

34.验证文件路径和扩展名

表达式 ^([a-zA-Z]\:|\\)\\([^\\]+\\)*[^\/:*?"<>|]+\.txt(l)?$

  

描述 检查路径和文件扩展名

匹配的例子 E:\mo.txt

不匹配的例子 E:\ , mo.doc, E:\mo.doc ,http://blog.csdn.net/21aspnet/

35.验证Html颜色值

表达式 ^#?([a-f]|[A-F]|[0-9]){3}(([a-f]|[A-F]|[0-9]){3})?$

  

描述 检查颜色取值

匹配的例子 #FF0000

不匹配的例子 http://blog.csdn.net/21aspnet/

^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$

整数或者小数:^[0-9]+\.{0,1}[0-9]{0,2}$

只能输入数字:"^[0-9]*$"。

只能输入n位的数字:"^\d{n}$"。

只能输入至少n位的数字:"^\d{n,}$"。

只能输入m~n位的数字:。"^\d{m,n}$"

只能输入零和非零开头的数字:"^(0|[1-9][0-9]*)$"。

只能输入有两位小数的正实数:"^[0-9]+(.[0-9]{2})?$"。

只能输入有1~3位小数的正实数:"^[0-9]+(.[0-9]{1,3})?$"。

只能输入非零的正整数:"^\+?[1-9][0-9]*$"。

只能输入非零的负整数:"^\-[1-9][]0-9"*$。

只能输入长度为3的字符:"^.{3}$"。

只能输入由26个英文字母组成的字符串:"^[A-Za-z]+$"。

只能输入由26个大写英文字母组成的字符串:"^[A-Z]+$"。

只能输入由26个小写英文字母组成的字符串:"^[a-z]+$"。

只能输入由数字和26个英文字母组成的字符串:"^[A-Za-z0-9]+$"。

只能输入由数字、26个英文字母或者下划线组成的字符串:"^\w+$"。

验证用户密码:"^[a-zA-Z]\w{5,17}$"正确格式为:以字母开头,长度在6~18之间,只能包含字符、数字和下划线。

验证是否含有^%&',;=?$\"等字符:"[^%&',;=?$\x22]+"。

只能输入汉字:"^[\u4e00-\u9fa5]{0,}$"

验证Email地址:"^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$"。

验证InternetURL:"^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$"。

验证电话号码:"^(\(\d{3,4}-)|\d{3.4}-)?\d{7,8}$"正确格式为:"XXX-XXXXXXX"、"XXXX-XXXXXXXX"、"XXX-XXXXXXX"、"XXX-XXXXXXXX"、"XXXXXXX"和"XXXXXXXX"。

验证身份证号(15位或18位数字):"^\d{15}|\d{18}$"。

验证一年的12个月:"^(0?[1-9]|1[0-2])$"正确格式为:"01"~"09"和"1"~"12"。

验证一个月的31天:"^((0?[1-9])|((1|2)[0-9])|30|31)$"正确格式为;"01"~"09"和"1"~"31"。

匹配中文字符的正则表达式: [\u4e00-\u9fa5]

匹配双字节字符(包括汉字在内):[^\x00-\xff]

应用:计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)

String.prototype.len=function(){return this.replace(/[^\x00-\xff]/g,"aa").length;}

匹配空行的正则表达式:\n[\s| ]*\r

匹配html标签的正则表达式:<(.*)>(.*)<\/(.*)>|<(.*)\/>

匹配首尾空格的正则表达式:(^\s*)|(\s*$)

应用:javascript中没有像vbscript那样的trim函数,我们就可以利用这个表达式来实现,如下:

String.prototype.trim = function()

{

return this.replace(/(^\s*)|(\s*$)/g, "");

}

利用正则表达式分解和转换IP地址:

下面是利用正则表达式匹配IP地址,并将IP地址转换成对应数值的Javascript程序:

function IP2V(ip)

{

re=/(\d+)\.(\d+)\.(\d+)\.(\d+)/g //匹配IP地址的正则表达式

if(re.test(ip))

{

return RegExp.$1*Math.pow(255,3))+RegExp.$2*Math.pow(255,2))+RegExp.$3*255+RegExp.$4*1

}

else

{

throw new Error("Not a valid IP address!")

}

}

不过上面的程序如果不用正则表达式,而直接用split函数来分解可能更简单,程序如下:

var ip="10.100.20.168"

ip=ip.split(".")

alert("IP值是:"+(ip[0]*255*255*255+ip[1]*255*255+ip[2]*255+ip[3]*1))

匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*

匹配网址URL的正则表达式:http://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?

利用正则表达式限制网页表单里的文本框输入内容:

用正则表达式限制只能输入中文:onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\u4E00-\u9FA5]/g,''))"

用正则表达式限制只能输入全角字符: onkeyup="value=value.replace(/[^\uFF00-\uFFFF]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\uFF00-\uFFFF]/g,''))"

用正则表达式限制只能输入数字:onkeyup="value=value.replace(/[^\d]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"

用正则表达式限制只能输入数字和英文:onkeyup="value=value.replace(/[\W]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"

<input onkeyup="value=value.replace(/[^\u4E00-\u9FA5\w]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\u4E00-\u9FA5\w]/g,''))" value="允许下划线,数字字母和汉字">

<script language="javascript">

if (document.layers)//触发键盘事件

document.captureEvents(Event.KEYPRESS)

function xz(thsv,nob){

if(nob=="2"){

window.clipboardData.setData("text","")

alert("避免非法字符输入,请勿复制字符");

return false;

}

if (event.keyCode!=8 && event.keyCode!=16 && event.keyCode!=37 && event.keyCode!=38 && event.keyCode!=39 && event.keyCode!=40){

thsvv=thsv.value;//输入的值

thsvs=thsvv.substring(thsvv.length-1);//输入的最后一个字符

//thsvss=thsvv.substring(0,thsvv.length-1);//去掉最后一个错误字符

if (!thsvs.replace(/[^\u4E00-\u9FA5\w]/g,'') || event.keyCode==189){//正则除去符号和下划线 key

thsv.value='请勿输入非法符号 ['+thsvs+']';

alert('请勿输入非法符号 ['+thsvs+']');

thsv.value="";

return false;

}

}

}

</script>

<input onkeyup="xz(this,1)" onPaste="xz(this,2)" value="">允许数字字母和汉字

<script language="javascript">

<!--

function MaxLength(field,maxlimit){

var j = field.value.replace(/[^\x00-\xff]/g,"**").length;

//alert(j);

var tempString=field.value;

var tt="";

if(j > maxlimit){

for(var i=0;i<maxlimit;i++){

if(tt.replace(/[^\x00-\xff]/g,"**").length < maxlimit)

tt = tempString.substr(0,i+1);

else

break;

}

if(tt.replace(/[^\x00-\xff]/g,"**").length > maxlimit)

tt=tt.substr(0,tt.length-1);

field.value = tt;

}else{

;

}

}

</script>

单行文本框控制<br />

<INPUT type="text" id="Text1" name="Text1" onpropertychange="MaxLength(this, 5)"><br />

多行文本框控制:<br />

<TEXTAREA rows="14"

cols="39" id="Textarea1" name="Textarea1" onpropertychange="MaxLength(this, 15)"></TEXTAREA><br />

控制表单内容只能输入数字,中文....

<script>

function test() 

{

if(document.a.b.value.length>50)

{

alert("不能超过50个字符!");

document.a.b.focus();

return false;

}

}

</script>

<form name=a onsubmit="return test()">

<textarea name="b" cols="40" wrap="VIRTUAL" rows="6"></textarea>

<input type="submit" name="Submit" value="check">

</form>

只能是汉字

<input onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')">

只能是英文字符

<script language=javascript>

function onlyEng()

{

if(!(event.keyCode>=65&&event.keyCode<=90))

  event.returnValue=false;

}

</script>

<input onkeydown="onlyEng();">

<input name="coname" type="text" size="50" maxlength="35" class=input2 onkeyup="value=value.replace(/[\W]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))">

只能是数字

<script language=javascript>

function onlyNum()

{

if(!((event.keyCode>=48&&event.keyCode<=57)||(event.keyCode>=96&&event.keyCode<=105)))

//考虑小键盘上的数字键

  event.returnValue=false;

}

</script>

<input onkeydown="onlyNum();">

只能是英文字符和数字

<input onkeyup="value=value.replace(/[\W]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))">

验证为email格式

<SCRIPT LANGUAGE=Javascript RUNAT=Server>

function isEmail(strEmail) {

if (strEmail.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) != -1)

return true;

else

alert("oh");

}

</SCRIPT>

<input type=text onblur=isEmail(this.value)>

屏蔽关键字(sex , fuck) - 已修改

<script language="JavaScript1.2">

function test() {

if((a.b.value.indexOf ("sex") == 0)||(a.b.value.indexOf ("fuck") == 0)){

  alert("五讲四美三热爱");

  a.b.focus();

  return false;}

}

</script>

<form name=a onsubmit="return test()">

<input type=text name=b>

<input type="submit" name="Submit" value="check">

</form>

限制文本框里只能输入数字

<input onkeyup="if(event.keyCode !=37 && event.keyCode != 39) value=value.replace(/\D/g,'');"onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/\D/g,''))">

 手机号码:(^(\d{3,4}-)?\d{7,8})$|(13[0-9]{9})|(15[8-9]{9})

不会的也可以根据上面介绍的写出来了吧,只是得花点时间了。

  

验证数字的正则表达式集

验证数字:^[0-9]*$

验证n位的数字:^\d{n}$

验证至少n位数字:^\d{n,}$

验证m-n位的数字:^\d{m,n}$

验证零和非零开头的数字:^(0|[1-9][0-9]*)$

验证有两位小数的正实数:^[0-9]+(.[0-9]{2})?$

验证有1-3位小数的正实数:^[0-9]+(.[0-9]{1,3})?$

验证非零的正整数:^\+?[1-9][0-9]*$

验证非零的负整数:^\-[1-9][0-9]*$

验证非负整数(正整数 + 0) ^\d+$

验证非正整数(负整数 + 0) ^((-\d+)|(0+))$

验证长度为3的字符:^.{3}$

验证由26个英文字母组成的字符串:^[A-Za-z]+$

验证由26个大写英文字母组成的字符串:^[A-Z]+$

验证由26个小写英文字母组成的字符串:^[a-z]+$

验证由数字和26个英文字母组成的字符串:^[A-Za-z0-9]+$

验证由数字、26个英文字母或者下划线组成的字符串:^\w+$

验证用户密码:^[a-zA-Z]\w{5,17}$ 正确格式为:以字母开头,长度在6-18之间,只能包含字符、数字和下划线。

验证是否含有 ^%&',;=?$\" 等字符:[^%&',;=?$\x22]+

验证汉字:^[\u4e00-\u9fa5],{0,}$

验证Email地址:^\w+[-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$

验证InternetURL:^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$ ;^[a-zA-z]+://(w+(-w+)*)(.(w+(-w+)*))*(?S*)?$

验证电话号码:^(\(\d{3,4}\)|\d{3,4}-)?\d{7,8}$:--正确格式为:XXXX-XXXXXXX,XXXX-XXXXXXXX,XXX-XXXXXXX,XXX-XXXXXXXX,XXXXXXX,XXXXXXXX。

验证身份证号(15位或18位数字):^\d{15}|\d{}18$

验证一年的12个月:^(0?[1-9]|1[0-2])$ 正确格式为:“01”-“09”和“1”“12”

验证一个月的31天:^((0?[1-9])|((1|2)[0-9])|30|31)$  正确格式为:01、09和1、31。

整数:^-?\d+$

非负浮点数(正浮点数 + 0):^\d+(\.\d+)?$

正浮点数  ^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$

非正浮点数(负浮点数 + 0) ^((-\d+(\.\d+)?)|(0+(\.0+)?))$

负浮点数 ^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$

浮点数 ^(-?\d+)(\.\d+)?

以上所述就是本文给大家总结的常用的正则表达式,希望对大家学习正则表达式能够有所帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

常用的正则表达式集锦 的相关文章

  • 流式计算简介

    1 数据的时效性 日常工作中 我们一般会先把数据存储在一张表中 然后对这张表的数据进行加工 分析 那这里是先存储在表中 那就会涉及到时效性这个概念 如果我们处理以年 月为单位的级别的数据处理 进行统计分析 个性化推荐 那么数据的的最新日期离
  • PHP 密码长度至少为8,且必须包含大小写字母/数字/符号任意三者组合

    密码长度至少为8 且必须包含大小写字母 数字 符号任意三者组合 public function rexCheckPassword pwd 12345678aaA 8 20 位 字母 数字 字符 密码必须包含大小写字母 数字 符号任意两者组合
  • 经纬度正则表达式

    经度 180 0 180 0 整数部分为0 180 输入1到8位小数 0 d 1 8 1 9 d d 1 8 1 0 7 d 1 d 1 8 180 0 1 8 纬度 90 0 90 0 整数部分为0 90 输入1到8位小数 0 1 8 d
  • vue校验生僻字

    前言 在使用正则校验姓名的时候 会发现 很多生僻字根本校验不到 这里提供方法 经测试可用 方法 methods utf8ToUtf16 h l var sum h 0xD800 0x400 l 0xDC00 0x10000 return s
  • Java中正则表达式的使用

    Java中正则表达式的使用 在Java中 我们为了查找某个给定字符串中是否有需要查找的某个字符或者子字串 或者对字符串进行分割 或者对字符串一些字符进行替换 删除 一般会通过if else for 的配合使用来实现这些功能 如下所示 Jav
  • 史上最全的正则表达式-匹配中英文、字母和数字

    1 匹配中文 u4e00 u9fa5 2 英文字母 a zA Z 3 数字 0 9 4 匹配中文 英文字母和数字及下划线 u4e00 u9fa5 a zA Z0 9 同时判断输入长度 u4e00 u9fa5 a zA Z0 9 4 10 5
  • 正则表达式,以字母开头,数字、字母、特殊符号组合 8-20位!

    const reg a zA Z d da zA Z 7 19 reg test value 表示value是否满足这个reg正则表达式
  • 密码正则

    正则一 密码正则 密码需包含字母 符号或者数字中至少两项且长度超过6位数 最多不超过16位数 const regPwd str gt let zmReg A Za z 大小写字母 let numReg 0 9 数字 let zfReg A
  • R语言的微博数据处理

    用R语言处理微博数据 用到TM包 rJava包 slam包 自己还对李舰老师的Rwordseg进行了反编译 将最新的ansj弄了进去 首先来进行下微博的处理 我将每一个用户的微博放在一个文档中 文档名为用户id txt 首先导入需要用的包
  • [译文]PHP 正则表达式入门 Getting Started with PHP Regular Expressions

    PHP 正则表达式入门 Getting Started with PHP Regular Expressions 译者注 本文是面向0正则基础的phper 很多正则的高级使用都没有涉及到 仅仅是一份简单的入门 对于有基础的 可直接查看本文末
  • shell三剑客之grep 全局搜索工具 详解

    目录 grep 全局搜索工具 grep基本原理 grep语法结构 OPTION选项 PATTERN模式 正则表达式 grep实战 grep基本原理 gt gt gt grep全称global search regular expressio
  • 知道这20个正则表达式,能让你少写1,000行代码

    正则表达式 一个十分古老而又强大的文本处理工具 仅仅用一段非常简短的表达式语句 便能够快速实现一个非常复杂的业务逻辑 熟练地掌握正则表达式的话 能够使你的开发效率得到极大的提升 正则表达式经常被用于字段或任意字符串的校验 如下面这段校验基本
  • QT 正则表达式 QRegExp 使用

    直接贴代码 QRegExp rx startxref s d rx setMinimal false int pos 0 while pos rx indexIn trl pos 1 pos rx matchedLength qDebug
  • JavaScript基本数据类型

    JavaScript是弱类型脚本语言 声明变量时无需指定变量的数据类型 JavaScript变量的数据类型是解释时动态决定的 但是JavaScript的值保存在内存中 也是数据类型的 JavaScript基本数据类型有如下五个 1 数值类型
  • 去除多余的0;正则表达式:去掉数字(整数、小数)前面多余的零

    方案1 来源 http zhidao baidu com question 277893180 html 如果是整数 去掉整数前的零 例如 0098765 gt 98765 如果是小数 去掉小数前的零 例如 000 333 gt 0 333
  • 史上最简单易懂、全面详细的“正则化”教程

    进入正文 全文摘要 在机器学习和深度学习中 最艰难的问题就是如何面对模型的过拟合问题 处理过拟合的方式手段多样 我们常常听见的方法是 正则化 但是 很多的资料对于正则化的介绍要么是单调片面 要么是晦涩难懂 本文汲取众家之长 由浅入深 彻底搞
  • 正则表达式匹配数字、字母和汉字等各类汇总

    最近在开发中遇到一个需求是只匹配字母和汉字 于是在网上找了一个比较全的记录一下 日后再用 正则表达式来匹配规范一段文本中的特定种类字符 下面是对常用的正则匹配做了一个归纳整理 1 匹配中文 u4e00 u9fa5 2 英文字母 a zA Z
  • XML乱码问题和encoding的理解

    文件编码 文件编码也称为字符编码 用于指定在处理文本时如何表示字符 一种编码可能优于另一种编码主要取决于它能处理或不能处理哪些语言字符 不过通常首选的是 Unicode 读取或写入文件时 未正确匹配文件编码的情况可能会导致发生异常或产生不正
  • 元字符的详细解析

    上一篇文章介绍了正则的用处以及正则中这些元字符的基本含义 但是如果我们只知道那些元字符的含义 不知道怎么使用和加以练习 那么对于正则我们还只是看见了门槛 并没有踏入 那么本篇文章就让我们迈起脚步正式走入正则的世界吧 let s go 我的学
  • java正则表达式语法详解及其使用代码实例

    代码下载地址 http www zuidaima com share 1835085544524800 htm 原文 java正则表达式语法详解及其使用代码实例 Regular Expressions of Java Tutorial 译者

随机推荐

  • 基于变分模态分解和麻雀算法优化长短期记忆网络的多维时间序列预测,VMD-SSA-LSTM多维时间序列预测。MATLAB代码(含LSTM、VMD-LSTM、VMD-SSA-LSTM三个模型的对比)

    clc clear all close all VMD SSA LSTM多维时间序列预测 tic load data mat load vmd data mat load LSTM mat disp disp VMD SSA LSTM预测
  • sqli-labs/Less-18

    这一关和前面的所有关卡都不一样 我们试一试先成功登录进去看看 结果除了iD地址之外还有一个信息回显了 那就是user agent所以我们抓包试一试 抓包后再user agent注入试试看 我尝试了许多注入方法 发现大部分方法都不能看出我注入
  • jdk、jre环境变量配置

    1 jdk和jre的区别 jdk Java 开发工具包 jre Java 的运行环境 只需这么记就可以了 想深入了解得自行查询相关资料 2 jdk是包含jre的 所以只需下载jdk 官方网址 https www oracle com cn
  • QT样式翻译

    Qt4 7文档翻译 Qt样式单参考 Qt Style Sheets Reference 转载于 http 2845385 blog 51cto com 2835385 1080560 0 tsina 1 14777 397232819ff9
  • 深入理解warp shuffle

    warp shuffle 相关函数学习 shfl up sync 0xffffffff lane val i 是CUDA函数之一 用于在线程束内的线程之间交换数据 其中 0xffffffff是掩码参数 指示线程束内所有线程都参与数据交换 一
  • C++线程处理函数的返回值

    引言 关于线程处理函数 常见的可能是返回值为void类型 那线程处理函数是否能定义自己想要的返回值类型呢 这里请看下面的说明 C 线程返回值 应用环境 1 传统的方式获取线程返回值 2 使用C Promise和future方式 3 prom
  • 服务器怎么和网站接入,网站服务器的带宽怎么接入呢?

    zzzooo 当下许多企业为了将事务上云 开端租借效劳器建立网站 可是因为各个运营商机房种类都不相同 带宽线路也有区别 许多用户不清楚网站效劳器的带宽要怎样接入 今天小编就和我们聊一聊当下商场几种比较抢手的几种带宽接入方式 一 BGP多线带
  • 使用请求队列实验

    关于块设备架构就讲解这些 接下来我们使用开发板上的 RAM 模拟一段块设备 也就是ramdisk 然后编写块设备驱动 首先是传统的使用请求队列的时候 也就是针对机械硬盘的时候如何编写驱动 先分段分析一下驱动代码 1 重要的数据结构及宏定义
  • 简单好用的小控件------自定义checkbox

    1 首先在drawable文件夹中添加drawable文件checkbox style xml html view plain copy
  • Centos7关闭防火墙时遇到的错误Failed to start firewalld.service: Unit not found. Unit firewalld.service could no

    Centos7关闭防火墙 今天在centos上想要关闭防火墙 查了一些博客 执行命令 systemctl status firewalld service 时报错Unit firewalld service could not be fou
  • 常见缺少msvcp140.dll问题及解决方法,分享多种方法帮你解决

    在日常使用电脑的过程中 我们可能会遇到各种问题 比如电脑提示msvcp140 dll文件丢失 这个问题通常是由于某些程序或游戏需要这个dll文件来正常运行 但是由于某种原因 这个文件被误删或者损坏了 那么 如何解决这个问题呢 本文将为您提供
  • 队列算法的原理和实现,及其企业级应用

    目录 一 队列的原理 二 队列的算法实现 队列的算法实现1 使用数组 队列的算法实现2 使用链表 三 队列的企业级应用案例 一 线程池中的任务队列 二 循环队列 三 优先队列 四 动态顺序队列 五 高并发 WEB 服务器队列的应用 一 队列
  • 华为硬件工程师社招机考题库_华为硬件工程师笔试题

    有效地扩展放大器的通频带 改善放大器的线性和非线性失真 6 放大电路的频率补偿的目的是什么 有哪些方法 仕兰微电子 频率补偿目的就是减小时钟和相位差 使输入输出频率同步 很多放大电路里都会用到锁相环频率补偿电路 7 频率响应 如 怎么才算是
  • python中数据的初始化

    1 普通数据的初始化 在函数以外的地方初始化数据 若数据是不同名 但初始值一样 则可以这样写 a b c d 0 2 函数参数区域的数据初始化 可以在形参的范围内去初始化各个不同名字的参数 def f value 0 reverse Fal
  • 安防音视频(rtsp,onvif,gb28181)的HTML5(H5)解决方案(直播,回放,PTZ)

    背景 单位需要在基于H5的管理软件中接入安防音视频 直接在H5上实现不容易 只能选择第三方开发包 本文对klporxy使用做个简单记录 开发包的获取 开发包为共享软件 2路视频是免费的 需要的可以点击下载 或者邮件联系5614280 qq
  • Ubuntu 如何切换到root账户

    root账号问题ubuntu默认禁用了root账号 所以当年试图使用su root命令切换到root用户时 尽管你已经输入了正确的密码 终端依旧会提示你密码错误 你需要执行以下命令解除root账号的锁定1 打开终端 Dash搜索termin
  • 面对AI,要(能)当“杜兰特”吗?

    大家好 我是老三 先说一下这篇文章没什么干货 就是一篇随笔 今天闲来无事 在掘金上刷到一篇文章 GPT 4都来了 我们还需要刷算法题和背八股文吗 https juejin cn post 7211120847787098171 文章还行 但
  • 为什么技术开发者应该读一读《浪潮之巅》

    上周已经阅读完吴军老师的著作 浪潮之巅 第二版 迄今仍然激情澎湃 这本著作以平和直白的笔触介绍了硅谷IT企业们的发展史 看像微软 谷歌 苹果等优秀的IT企业们 从白手起家 到发展壮大成为今天的巨头 再看太阳微系统公司 雅虎公司从创造辉煌 到
  • 关于Eclipse如何改成中文的方法

    从官网下载的Eclipse是英文版的 对于我这种新手来说要上手比较困难 所以需要改成中文版的 咱们首先进入Eclipse语言包的网址 如下图所示进行操作 如图所示 找到对应的版本进入 找到标题为Language Chinese Simpli
  • 常用的正则表达式集锦

    常用的正则表达式集锦 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 4