正则表达式,不接受一系列点(。)

时间:2015-08-21 06:14:12

标签: javascript regex

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

我写了一个正则表达式来省略特殊字符。

public void actionPerformed(ActionEvent arg0){

    if(arg0.getSource() == button_ok){
        System.out.println("Adding dynamic components");
        JPanel cell7 = new JPanel();
        Box box = Box.createHorizontalBox();
        JButton button_next = new JButton("Button_next");
        JLabel label = new JLabel("Hello");
        gbc.gridx = 0;
        gbc.gridy = 1;
        gbc.gridheight = 1;
        container.add(cell7,gbc);
        box.add(label);
        box.add(button_next);
        cell7.add(box);
        container.repaint();
        fenetre.repaint();
    }
}

但是我没有找到一种方法将它与一个不接受连续点的字符串的正则表达式结合起来。

任何帮助都很明显。

2 个答案:

答案 0 :(得分:0)

我不太确定你想要什么,因为它似乎是批准包含其中一个特殊字符的字符串(而不是将它们剥离出你说你正在做的事情)。

但是,如果您希望此函数在当前正则表达式为true且字符串包含连续句点时返回false,则可以使用以下

var stag="<div>testing<table><tr><td>cell 1</td></tr></table> a table</div>"; function removeTag(text, selector) { var content= $(text); content.find(selector).remove(); return content.text(); } var pString = removeTag(stag, "table"); alert(pString);

如果你想要相反的逻辑,那就应该这样做

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

我强烈建议使用正则表达式可视化工具,例如debuggex这样的事情 - 让它更容易

答案 1 :(得分:0)

在你的情况下,我只想在测试函数中添加另一个正则表达式,如

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

正如上面的评论所述 - 我认为/([:*?"<>|\/])/无论如何都不正确。有了它,您只需测试 中的一个<{1}},:*?",{{ 1}},<>位于|,如果是,则它是有效的文件名?!