1

str_ireplace またはその他の関数を使用して、HTML で一般的に使用される文字、数字、または記号を除く任意の文字を削除する方法: " ' ; : . - + =... など。また、/n、空白、タブなども削除したいと考えています。

("textContent") を行うことで得られるテキストが必要です。IE10 と Chrome の innerHTML では、php 変数は同じサイズであり、どのブラウザーで実行するかに関係なく同じサイズです。したがって、テキストと文字の両方で同じエンコーディングが必要であり、まれまたは異なる文字は削除されます。

私はこれを試しますが、うまくいきません:

        $textForMatch=iconv(mb_detect_encoding($text, mb_detect_order(), true), "UTF-8", $text);
        $textoForMatc = str_replace(array('\s', "\n", "\t", "\r"), '', $textoForMatch);

$text には関数の結果が含まれます ("textContent")。innerHTML、○○の文字を削除したい..

4

1 に答える 1

3

最も簡単なオプションは、ホワイトリストで preg_replace を使用することです。つまり、保持したいものをリストするパターンを使用し、そのリストにないものを置き換えます。

$input = 'The quick brown 123 fox said "�é³". Man was I surprised';
$stripped = preg_replace('/[^-\w:";:+=\.\']/', '', $input);
$output = 'Thequickbrownfoxsaid"".ManwasIsurprised';

正規表現の説明

/       - start regex
[^      - Begin inverted character class, match NON-matching characters
-       - litteral character
\w      - Match word characters. Equivalent to A-Za-z0-9_
:";:+=  - litteral characters
\.      - escaped period (because a dot has meaning in a regex)
\'      - escaped quote (because the string is in single quotes)
]       - end character class
/       - end of regex

したがって、これにより、正規表現にリストされている単語、数字、または特定の文字以外のものはすべて削除されます。

于 2013-01-19T17:26:54.267 に答える