簡體   English   中英

正則表達式字符串不以特殊字符開頭或結尾

[英]Regex String Doesn't Start or End With Special Character

伙計們,你們好。 我有一些需要實施的密碼要求,其中一項要求是字符串不能以特殊字符開頭或結尾 我確實花了一些時間谷歌搜索,但我的 RegEx 功夫是 kimosabe 級別。

以防萬一您對某些代碼感興趣,這里是JavaScript
注意:是的,也在服務器上驗證密碼:) 以下代碼片段運行 RegEx 測試並簡單地檢查或 x 與密碼規則關聯的行項目。

var validate = function(password){
        valid = true;

        var validation = [
            RegExp(/[a-z]/).test(password), RegExp(/[A-Z]/).test(password), RegExp(/\d/).test(password), 
            RegExp(/[-!#$%^&*()_+|~=`{}\[\]:";'<>?,./]/).test(password), !RegExp(/\s/).test(password), !RegExp("12345678").test(password), 
            !RegExp($('#txtUsername').val()).test(password), !RegExp("cisco").test(password), 
            !RegExp(/([a-z]|[0-9])\1\1\1/).test(password), (password.length > 7)
        ]

        $.each(validation, function(i){
            if(this == true)
                $('.form table tr').eq(i+1).attr('class', 'check');
            else{
                $('.form table tr').eq(i+1).attr('class', '');
                valid = false
            }
        });

        return(valid);

    }

編輯:你想要的正則表達式是:-

/^[a-zA-Z0-9](.*[a-zA-Z0-9])?$/

附加信息

在正則表達式中, ^表示“字符串的開頭”, $表示“字符串的結尾”,例如:-

/^something$/

火柴

'something'

但不是

'This is a string containing something and some other stuff'

您可以使用[^-char to negate-]否定字符,所以

/^[^#&].*/

匹配任何不以 # 或 & 開頭的字符串

/^[a-zA-Z0-9](.*[a-zA-Z0-9])?$/

此表達式檢查以下驗證:

  • 開頭和結尾沒有空格
  • 結尾和開頭沒有特殊字符
  • 中間允許的特殊字符

這個正則表達式應該是你想要的:

/^[0-9a-z].*[0-9a-z]$/

暫無
暫無

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

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