1

我正在尝试在字符串上使用 preg_replace 来删除空属性,但是整个字符串都被清除了。

我正在替换的字符串如下所示:

 <input type="text" name="username" id="username" class="required" size="20" maxlength="40" value="" />

这是我尝试使用的代码:

    $defaults = array(
        'cols' => '60',
        'class' => '',
        'currentValue' => '',
        'default' => '',
        'group' => '',
        'id' => '',
        'maxlength' => '',
        'name' => '',
        'options' => array(),
        'rows' => '00',
        'size' => '60',
        'text' => '',
        'type' => 'text',
        'value' => ''
    );
    $inputHTML = '<input type="text" name="username" id="username" class="required" size="20" maxlength="40" value="" />';
    $inputHTML = preg_replace( '/(' . implode( '|', array_keys( $defaults ) ) , ')=""/g', '', $inputHTML );

正在使用该数组,因为我需要代码的其他部分。

任何想法为什么字符串返回空白?

4

1 回答 1

1

您的通话中有 a,而不是 a 。此外,您的正则表达式中有 a ,因此它只会捕获空属性(哦,这正是您想要做的)。.preg_replace""

修正线:

$inputHTML = preg_replace( '/(' . implode( '|', array_keys( $defaults ) ) . ')=""/', '', $inputHTML );

工作示例:http: //ideone.com/sO9K9S

于 2013-08-09T22:07:05.010 回答