Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript正则表达式失败_Javascript_Regex - Fatal编程技术网

Javascript正则表达式失败

Javascript正则表达式失败,javascript,regex,Javascript,Regex,我正在尝试编写一个正则表达式,它只接受JPEG、JPG或PDF格式的文件。我的尝试是: /^image | \/(jpe?g | pdf)$/i 但是,目前它不接受PDF格式(因为“image/*”部分) 任何帮助都将不胜感激。谢谢。那句话没有多大意义。这里有一个替代选项,表示match^image或match/(jpe?g | pdf)$ 如果要匹配image/jpg、image/jpeg和application/pdf,则: /^(?:image\/jpe?g|application\/pd

我正在尝试编写一个正则表达式,它只接受JPEG、JPG或PDF格式的文件。我的尝试是:

/^image | \/(jpe?g | pdf)$/i

但是,目前它不接受PDF格式(因为“image/*”部分)


任何帮助都将不胜感激。谢谢。

那句话没有多大意义。这里有一个替代选项,表示match
^image
或match
/(jpe?g | pdf)$

如果要匹配
image/jpg
image/jpeg
application/pdf
,则:

/^(?:image\/jpe?g|application\/pdf)$/
但是请注意,PDF可以有一些其他MIME类型。也许:

/^(?:image\/jpe?g|application\/(?:pdf|x-pdf|x-bzpdf|x-gzpdf))$/

…将更具包容性。

这个表达没有多大意义。这里有一个替代选项,表示match
^image
或match
/(jpe?g | pdf)$

如果要匹配
image/jpg
image/jpeg
application/pdf
,则:

/^(?:image\/jpe?g|application\/pdf)$/
但是请注意,PDF可以有一些其他MIME类型。也许:

/^(?:image\/jpe?g|application\/(?:pdf|x-pdf|x-bzpdf|x-gzpdf))$/

…将更具包容性。

并非所有内容都需要是正则表达式:

function isValidMimeType(type) {
    return [
        'image/jpg',
        'image/jpeg',
        'application/pdf',
        'application/x-pdf',
        'application/x-bzpdf',
        'application/x-gzpdf'
    ].indexOf(type) > -1;
}
如果您坚持使用正则表达式,我建议您使用multiple,以便代码仍然可读:

function isValidMimeType(type) {
    if (/^image\/jpe?g$/.test(type)) {
        return true;
    } else if (/^application\/(?:x-|x-bz|x-gz)?pdf$/.test(type)) {
        return true;
    }
    return false;
}
当然,这段代码可以写得更短。但是没有理由这么做。当您将其压缩为以下内容时,您牺牲了可读性:

function isValidMimeType(type) {
    return /^(?:image\/jpe?g|application\/(?:x-(?:bz|gz)?)?pdf)$/.test(type);
}

祝你好运,能为它添加另一个mime类型。

并非所有内容都需要是正则表达式:

function isValidMimeType(type) {
    return [
        'image/jpg',
        'image/jpeg',
        'application/pdf',
        'application/x-pdf',
        'application/x-bzpdf',
        'application/x-gzpdf'
    ].indexOf(type) > -1;
}
如果您坚持使用正则表达式,我建议您使用multiple,以便代码仍然可读:

function isValidMimeType(type) {
    if (/^image\/jpe?g$/.test(type)) {
        return true;
    } else if (/^application\/(?:x-|x-bz|x-gz)?pdf$/.test(type)) {
        return true;
    }
    return false;
}
当然,这段代码可以写得更短。但是没有理由这么做。当您将其压缩为以下内容时,您牺牲了可读性:

function isValidMimeType(type) {
    return /^(?:image\/jpe?g|application\/(?:x-(?:bz|gz)?)?pdf)$/.test(type);
}

祝你好运,能为它添加另一个mime类型。

如果你只是在寻找少数允许的值,为什么要使用正则表达式呢?只是觉得这样会更简单。我有一点肛门保留,所以我想知道为什么它不起作用。如果你只寻找少数允许的值,为什么要使用正则表达式?我只是认为它会使这更简单。我有一点肛门保留,所以我想知道为什么它不起作用。
/^(?:image\/jpe?g)|(?:application\/pdf)$/
应该是
/^(?:image\/jpe?g | application\/pdf)$/
哇,我真的需要查看RegEx…从来没有太注意过它们。非常感谢。很好用<代码>/^(?:image\/jpe?g)|(?:application\/pdf)$/应该是
/^(?:image\/jpe?g | application\/pdf)$/
哇,我真的需要回顾一下RegEx…从来没有太注意过它们。非常感谢。很好用!