2015-11-19 32 views
0

引用属性,我已经知道解决方案。转义引用属性

function encodeForHTML(str){ 
    return str 
     .replace(/&/g, '&') 
     .replace(/"/g, '"') 
     .replace(/'/g, ''') 
     .replace(/</g, '&lt;') 
     .replace(/>/g, '&gt;') 
     .replace(/\//g, '&#x2F;'); 
} 

不加引号的一个怎么样?哪些角色必须在这6个角色旁边逃脱?我怎样才能在JS中实现它?

+0

如果'attribute = value1 value2'会出现什么情况,这将是无效的,因此,您应该尝试使用quote:'attribute =”value1 value2“' –

+0

[ '/[-_\u00A0-\u10FFFF]/'](https://mothereff.in/unquoted-attributes) –

+0

只需引用他们? – Bergi

回答

1

根据the W3 HTML spec,未加引号的属性值中不允许使用的字符为“”,“>”,“=”,“>”,“<”或“`”以及文字空格字符(哦,并且属性值也不能是空字符串)

我认为你已经拥有的唯一补充是等号,反引号和空格。注意,你也可以消除正斜杠(“ /“);它不需要编码