【问题标题】:How to validate regex pattern to check mimetype? [duplicate]如何验证正则表达式模式以检查 mimetype? [复制]
【发布时间】:2020-09-30 11:20:28
【问题描述】:

我在这里尝试验证 SVG 图像 mime 类型。即使我传递了有效的内容类型,它也会失败。谁能告诉我这个正则表达式有什么问题?

const mimetypes = /image\/png|image\/jpeg|imagesvg+xml|image\/gif|image\/svg+xml/;

var result = mimetypes.test('image/svg+xml')

console.log(result)

【问题讨论】:

    标签: javascript regex


    【解决方案1】:

    您正在根据一堆固定字符串检查固定字符串。你根本不需要正则表达式。

    const mimetypes = ['image/png', 'image/jpeg', 'image/svg+xml', 'image/gif'];
    
    var result = mimetypes.includes('image/svg+xml')
    

    【讨论】:

      【解决方案2】:

      你也应该转义+,它是正则表达式的特殊字符

      const mimetypes = /image\/png|image\/jpeg|imagesvg\+xml|image\/gif|image\/svg\+xml/;
      
      var result = mimetypes.test('image/svg+xml')
      
      console.log(result)

      【讨论】:

        【解决方案3】:

        您必须转义 + 符号,因为它在正则表达式中有意义:

        const mimetypes = /image\/png|image\/jpeg|imagesvg\+xml|image\/gif|image\/svg\+xml/;
        
        var result = mimetypes.test('image/svg+xml')
        
        console.log(result)

        【讨论】:

          【解决方案4】:

          + 是正则表达式中的量词,因此您还必须转义 + 符号

          const mimetypes = /image\/png|image\/jpeg|imagesvg\+xml|image\/gif|image\/svg\+xml/;
          
          var result = mimetypes.test('image/svg+xml')
          
          console.log(result)

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2016-10-30
            • 2017-03-03
            • 2021-04-20
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2016-06-10
            • 1970-01-01
            相关资源
            最近更新 更多