簡體   English   中英

javascript正則表達式要求至少一個特殊字符

[英]javascript regex to require at least one special character

我已經看到很多正則表達式的例子,不允許任何特殊字符。 我需要一個至少需要一個特殊字符的人。

我正在看一個C#正則表達式

var regexItem = new Regex("^[a-zA-Z0-9 ]*$");

可以將其轉換為與javascript一起使用嗎? 我是否需要逃避任何角色?

基於一個例子我到目前為止已經構建了這個:

var regex = "^[a-zA-Z0-9 ]*$";

//Must have one special character
if (regex.exec(resetPassword)) {
    isValid = false;
    $('#vsResetPassword').append('Password must contain at least 1 special character.');
}

有人可以識別我的錯誤,還是引導我走更有效的道路? 我目前得到的錯誤是正則表達式沒有'exec'方法

在javascript中,正則表達式的格式如下:

/^[a-zA-Z0-9 ]*$/

請注意,沒有引號,而是在開頭和結尾使用正斜杠。

你的問題是"^[a-zA-Z0-9 ]*$"是一個字符串,你需要一個正則表達式:

var regex = /^[a-zA-Z0-9 ]*$/;                 // one way
var regex = new RegExp("^[a-zA-Z0-9 ]*$");     // another way

[ 更多信息 ]

除此之外,您的代碼看起來還不錯。

在javascript中,您可以通過兩種方式創建正則表達式對象。

1)您可以將構造函數方法與RegExp對象一起使用(請注意與您使用的拼寫不同的拼寫):

var regexItem = new RegExp("^[a-zA-Z0-9 ]*$");

2)您可以使用語言中內置的文字語法:

var regexItem = /^[a-zA-Z0-9 ]*$/;

第二個優點是你只需要逃避正斜杠,你不必擔心引號。 第一個優點是您可以通過編程從各個部分構造一個字符串,然后將其傳遞給RegExp構造函數。


此外,正則表達式的可選標志以兩種形式像這樣傳遞:

var regexItem = new RegExp("^[A-Z0-9 ]*$", "i");
var regexItem = /^[A-Z0-9 ]*$/i;

在javascript中,除非您正在動態構造字符串或標志,否則似乎是解析器中內置的用戶/regex/方法的更常見約定。

暫無
暫無

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

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