首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在PHP中,如何将包含各种字符的字符串转换为只有and和0-9字符的字符串?

在PHP中,如何将包含各种字符的字符串转换为只有and和0-9字符的字符串?
EN

Stack Overflow用户
提问于 2013-01-10 20:47:13
回答 5查看 100关注 0票数 0

可能重复: how to replace special characters with the ones they’re based on in PHP?

我有一根看起来像这样的绳子:

代码语言:javascript
复制
ABCÇĆDEFGHÎIïJ123450086

在PHP中,如何将其显示为:

代码语言:javascript
复制
ABCDEFGHIJ123450086

而不必手动替换不需要的每个字符。我能用一些RegEx来做这个吗?多么?

我只想要as和0-9,没有其他外文字符(如在,删除它们).

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2013-01-10 20:50:31

使用字符类:

代码语言:javascript
复制
$string = preg_replace('/[^\w\d]/', '', $string);

用空字符串替换所有不属于([^])字母(\w)或数字(\d)的字符。

票数 4
EN

Stack Overflow用户

发布于 2013-01-10 20:57:15

一个很好的功能:

代码语言:javascript
复制
/**
 * Strip accents
 *
 * @param string $str string to clean
 * @param string $encoding encoding type (example : utf-8, ISO-8859-1 ...)
 */
function strip_accents($str, $encoding='utf-8') {
    // transforme accents chars in entities
    $str = htmlentities($str, ENT_NOQUOTES, $encoding);

    // replace entities to have the first nice char
    // Example : "&ecute;" => "e", "&Ecute;" => "E", "Ã " => "a" ...
    $str = preg_replace('#&([A-za-z])(?:acute|grave|cedil|circ|orn|ring|slash|th|tilde|uml);#', '\1', $str);

    // Replace ligatures like : Œ, Æ ...
    // Example "Å“" => "oe"
    $str = preg_replace('#&([A-za-z]{2})(?:lig);#', '\1', $str);
    // Delete else
    $str = preg_replace('#&[^;]+;#', '', $str);

    return $str;
}

// Example
$texte = 'Ça va mon cœur adoré?';
echo suppr_accents($texte);
// Output : "Ca va mon coeur adore?"

来源:http://www.infowebmaster.fr/tutoriel/php-enlever-accents

票数 1
EN

Stack Overflow用户

发布于 2013-01-10 20:50:22

假设您想要删除它们,您可以使用preg_replace将不在all、all和0-9范围内的所有字符替换为'';

否则,使用在另一个线程中给出的转换技术。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14266984

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档