簡體   English   中英

不接受一系列Dots(。)的正則表達式

[英]Regular expression for not accepting a series of Dots(.)

我正在使用Javascript,其中我接受通過URL發送的文件名。

我寫了一個正則表達式來省略特殊字符。

    isFileNameValid: function (value)
    {                                 
        return new RegExp("([\\\:\*\?\"\<\>\|\/])").test(value);
    }

但是我沒有找到一種將其與不接受具有連續點的字符串的正則表達式相結合的方法。

任何幫助都是可觀的。

我不太確定您要什么,因為這似乎是在批准包含這些特殊字符之一的字符串(而不是剝離您說的正在使用的字符)。

但是,如果要讓此函數在當前正則表達式為true並且字符串包含連續句點的情況下返回false,則可以使用以下命令

[\\\\\\:\\*\\?\\"\\<\\>\\|\\/]|\\.{2,}

如果您想要相反的邏輯,應該這樣做

[\\\\\\:\\*\\?\\"\\<\\>\\|\\/]|(?!.*(\\.{2,}))

我強烈建議您使用regex可視化工具(例如debuggex)來進行此類操作-使其更容易

在您的情況下,我只需向測試函數添加另一個正則表達式即可

isFileNameValid: function (value)
{                                 
    return  /([:*?"<>|\/])/.test(value) && !/[.]{2}/.test(value);
}

正如上面的注釋所聲明-我不認為/([:*?"<>|\\/])/是正確的,反正就這樣,你只需測試,如果角色之一:*?"<>| ,或/value ,如果是,則它是有效的文件名?!

暫無
暫無

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

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