Javascript 中 String.replace( ) 的妙用

String.replace( ) 简介

语法:

 
string.replace(regexp, replacement)

regexp :您要执行替换操作的正则表达式,如果传入的是一个字符串,那就会当作普通字符来处理,并且只会执行一次替换操作;如果是正则表达式,并且带有 global (g) 修饰符,则会替换所有出现的目标字符,否则,将只执行一次替换操作。

replacement :您要替换成的字符。

返回值是执行替换操作后的字符串。

String.replace( ) 的简单用法

 
var text = "javascript 非常强大 !";
text.replace(/javascript/i, "JavaScript");
// 返回:JavaScript 非常强大 !

String.replace( ) 替换所有出现的目标字符

 
var text= "javascript 非常强大 !JAVASCRIPT 是我最喜欢的一门语言 !";
text.replace(/javascript/ig, "JavaScript");
// 返回:JavaScript 非常强大 !JavaScript 是我最喜欢的一门语言 !

String.replace( ) 实现调换位置

 
var name= "Doe, John";
name.replace(/(w+)s*,s*(w+)/, "$2 $1");
// 返回:John Doe

String.replace( ) 实现将所有双引号包含的字符替换成中括号包含的字符

 
var text = '"JavaScript" 非常强大!';
text.replace(/"([^"]*)"/g, "[$1]");
// 返回:[JavaScript] 非常强大!

String.replace( ) 将所有字符首字母大写

 
var text = 'a journey of a thousand miles begins with single step.';
text.replace(/bw+b/g, function(word) {
                           return word.substring(0,1).toUpperCase( ) +
                                  word.substring(1);
                         });
 
// 返回:A Journey Of A Thousand Miles Begins With Single Step.

批量替换 MySQL 指定字段中的字符串

批量替换 MySQL 指定字段中的字符串是数据库应用中很常见的需求,但是有很多初学者在遇到这种需求时,通常都是用脚本来实现;其实,MySQL 内置的有批量替换语法,效率也会高很多;想了解具体方法,继续阅读本文吧 :)

批量替换的具体语法是:

 
UPDATE 表名 SET
指定字段 = replace(指定字段, ’要替换的字符串’, ’想要的字符串’) 
WHERE 条件;

如果你想把 article 表中 ID 小于5000的记录,content 字段中“解决”替换成“解放”,那么语法就是:

 
UPDATE article SET
content = replace(content, ’解决’, ’解放’) 
WHERE ID<5000;

是不是很方便 :)

计算 UTF-8 字符串长度(忽略字节的方案)

本文介绍的函数可以统计 UTF-8 字符串的长度,但不同的是,该函数并不考虑字节,这有些类似 Javascript 中字符串的 length 方法,一个字符全部按 1 个长度计算。

 
<?php
// 说明:计算 UTF-8 字符串长度(忽略字节的方案)
// 整理:http://www.CodeBit.cn

function strlen_utf8($str)
{
	$i = 0;
	$count = 0;
	$len = strlen ($str);
	while ($i < $len)
	{
		$chr = ord ($str[$i]);
		$count++;
		$i++;
		if($i >= $len)
			break;

		if($chr & 0x80)
		{
			$chr <<= 1;
			while ($chr & 0x80)
			{
				$i++;
				$chr <<= 1;
			}
		}
	}
	return $count;
} 

$str = "Codebit.cn - 聚合小段精华代码";

echo strlen_utf8($str);

?>

上面的代码将返回 21。

用 javascript 控制超长英文字符串换行

超长英文字符串的换行问题相信大家都不会陌生,IE 专有属性 “word-wrap” 不符合 WEB 标准,不能兼容多种浏览器,本文介绍的是用 javascript 控制超长英文字符串换行的解决方案。

用 javascript 控制超长英文字符串换行 – 示例

 
<script language="JavaScript" type="text/javascript">
<!--
// 说明:用 javascript 控制超长英文字符串换行
// 整理:http://www.CodeBit.cn

/*
 * 长字符串换行
 * @ bigString	长字符串
 * @ m 换行长度
 * @ b 分隔符
 * @ c 是否强制换行
 *
 */
var wordWrap = function(bigString, m, b, c){
    var i, j, s, r = bigString.split("n");
    if(m > 0) for(i in r){
        for(s = r[i], r[i] = ""; s.length > m;
            j = c ? m : (j = s.substr(0, m).match(/S*$/)).input.length - j[0].length
            || m,
            r[i] += s.substr(0, j) + ((s = s.substr(j)).length ? b : "")
        );
        r[i] += s;
    }
    return r.join("n");
};

alert(wordWrap("My world is biiiiiiiiiiiiig", 10, "n", true));
alert(wordWrap("My world is biiiiiiiiiiiiig", 10, "n", false));

//-->
</script>