代码之家  ›  专栏  ›  技术社区  ›  AnchovyLegend

正在用regex验证图像标记[重复]

  •  -1
  • AnchovyLegend  · 技术社区  · 7 年前

    这个问题已经有了答案:

    我正在开发一个项目,它使用文本编辑器在幕后生成样式内容,并用HTML内容更新隐藏输入的值。

    已为此文本编辑器的特定版本开发了一个组件,重点是上载 仅单个图像 . 当需要上传单个图像时,输入值的结构如下:

    <input id='image' type='hidden' value='<p><img src="some url"></p>' />
    

    我想生成一些regex,它将获取隐藏的输入值并对此进行验证 <p><img src='...'/></p> 结构和取消任何其他结构的资格。即上传到编辑器中的多个图像、上传后图像周围的任何文本、无图像的文本等。

    用regex可以实现这一点吗?比如:

    methods: {
            isValidImage(inputValue) {
                //validate with regex
                return isValid;
            }
        }
    

    提前谢谢

    1 回复  |  直到 7 年前
        1
  •  2
  •   wp78de    7 年前

    我会用 XPath in JavaScript . 将字符串加载到domparser并查询 src 的属性 img 在下方 p :

    function isValidImgSrc(inputValue) {
      var doc = new DOMParser().parseFromString(inputValue,'text/xml');
      var result = doc.evaluate('//p/img/@src', doc, null, XPathResult.STRING_TYPE, null);
      console.log(result.stringValue);
      if (result && result.stringValue && result.stringValue !== "" ) {
          //maybe you want to do further checks to test if the url is actually valid...
          return true;
      }
      return false;
    }
    
    let input = `<p><img src='test'/></p>`;
    console.log(isValidImgSrc(input));