簡體   English   中英

正則表達式驗證數字,破折號和方括號

[英]Regex validation for number, dash and square brackets

我需要使用jquery / javascript regex驗證來驗證以下格式。

它使用代碼在Java regex中完成:

"(\\d{1,2})?\\s?\\[\\d{3}\\]\\s?\\d{4}-?\\d{4}"

但現在需要在客戶端使用javascript / jquery。

以下是示例:

1) 1 [123] 1234-5678
2) 1[123] 1235-5678
3) 1[123]1236-5678
4) 1 [123]1237-5678
5) 1 [123] 12385789
6) 1[123]12341678
7) 1 [123]12345678
8) 1[123] 1234-5678
9) [123] 1234-5678
10) [123]1234-5678
11) [123]12345678
12) [123] 12345678

它是數字,方括號,破折號的基本組合,此處必須存在數字和方括號,但破折號(-)可能存在也可能不存在。

只能使用數字和方括號,不能包含其他字符

任何幫助表示贊賞。

在JS中,您可以使用RegExp對象文字,這意味着您不需要轉義反斜杠字符。 可以使用兩個正斜杠字符將regex表達式括起來來創建RegExp對象文字:

原始正則表達式:

"(\\d{1,2})?\\s?\\[\\d{3}\\]\\s?\\d{4}-?\\d{4}"

在JavaScript中為RegExp對象分配變量:

var myRegex = /(\d{1,2})?\s?\[\d{3}\]\s?\d{4}-?\d{4}/;

您要添加到正則表達式的任何標志(g,i,m,y)都應在終止正斜杠之后直接使用。 例如:

/(\d{1,2})?\s?\[\d{3}\]\s?\d{4}-?\d{4}/gm

另一種方法是將原始正則表達式轉換為字符串形式,然后將其傳遞給RegExp構造函數,但這僅建議用於動態正則表達式而不是靜態正則表達式:

var myRegex = new RegExp('(\\d{1,2})?\\s?\\[\\d{3}\\]\\s?\\d{4}-?\\d{4}');

您還可以選擇將第二個參數傳遞給此構造函數,該參數采用一串標志。

有關創建和使用RegExp對象的更多文檔,請參見此處

JavaScript使用實際的RegExp而不是字符串。 您可以使用RegExp類將其設置為正則RegExp

var regex = new RegExp("(\\d{1,2})?\\s?\\[\\d{3}\\]\\s?\\d{4}-?\\d{4}");

regex現在保存您的正則表達式。 使用此功能,您可以在不修改它們的情況下來回交換正則表達式。 Javascript還支持RegEx,在前端和結尾都帶有/

var regex = /(?:This\sIs\sMy\sRegex)/flags;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM