0

我想从 html 标签、html 空格字符和类似的字符中清除我的文本< > [ ] / \ * ,

我用 $str = preg_replace("/&#?[a-zA-Z0-9]+;/i", "", $str); 它与 html 特殊字符配合得很好,但有些字符不能删除,例如:( /*/*]]>*/)

如何删除这些字符?

4

2 回答 2

1

如果你真的像看起来那样使用 php,你可以使用:

$str = htmlspecialchars($str);

所有 HTML 字符都将被转义(这可能比仅仅剥离它们更好)。如果你真的只想过滤这些字符,你需要做的是在字符列表中转义这些字符:

$str = preg_replace("/[\&#\?\]\[\/\\\<\>\*\:\(\);]*/i","",$str);

注意只有一个“/[]*/i”,我删除了 a-zA-Z0-9,因为你应该想要这些字符。你也可以只分类想要的字符来输入你的字符串(会给你带来重音的麻烦喜欢 á é ü 如果你使用它们,你必须指定每个接受的字符):

$str = preg_replace("/[^a-zA-Z0-9áÁéÉíÍãÃüÜõÕñÑ\.\+\-\_\%\$\@\!\=;]*/","",$str);

另请注意,转义字符永远不会太多,除非例如对于间隔(\a-\z 会很好,\a-\z 会匹配 a、或 - 或 z)。

我希望它有所帮助。:)

于 2012-06-04T13:45:15.467 回答
0

html标签的正则表达式为:

/\<(.*)?\>/

所以使用这样的东西:

// The regular expression to remove HTML tags
$htmltagsregex = '/\<(.*)?\>/';

// what shit will substitute it
$nothing = '';

// the string I want to apply it to
$string = 'this is a string with <b>HTML tags</b> that I want to <strong>remove</strong>';

// DO IT
$result = preg_replace ($htmltagsregex,nothing,$string);

它会回来

这是一个带有我要删除的 HTML 标记的字符串

就这样

于 2013-09-09T20:00:35.973 回答