2013-02-20 91 views
0

使用PHP,我想要编码任意标签的属性值中的特定字符(><字符)。例如,<input type="text" data-name="Oliver<>Nassar">将变为<input type="text" data-name="Oliver&lt;&gt;Nassar">对标签属性中的特定字符进行编码

我对属性名称没有挑剔(例如,data-namevalue属性名称)。虽然我很高兴地设定属性值(如:<input data-name="...">)前的空白字符(\s),这将是巨大的,如果这不是一个条件,这样我能满足的情况下,如<input type="text"data-name="Oliver<>Nassar">

我想象PHP的preg_replace_callback会被利用,但就实际表达而言,我可以在那里使用一些帮助。

+0

为什么添加了正则表达式标签的任何特定原因? – 2013-02-20 05:28:20

+0

我相信我需要一个正则表达式来匹配属性值的内容。 – onassar 2013-02-20 05:29:05

+0

看看[这个问题](http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags),看看你是否仍然想要正则表达式... – 2013-02-20 05:30:55

回答

0

这里是我想出了表达:

'/' . 
    '(' . 
     '\s{1}' . 
     '[a-z\-]+' . 
     '\s?' . 
     '=' . 
     '\s?' . 
     '(' . 
      '[\'|"]{1}' . 
     ')' . 
    ')' . 
    '([^\2]*)' . 
    '\2' . 
'/iU', 

希望这是有帮助别人。

相关问题