Javascript总结--String对象&正则表达式

String对象,创建String是非常简单的。

我们可以这样

var a = '123';

或者这样

var a = new String();



那么,常用的处理String的方法都有哪些呢

1. charAt

"123".charAt(0)     //1

某个索引值的字符


2. indexOf

返回指定子字符串(或元素)在字符串(或数组)中首次出现的位置,未找到则返回-1
indexOf(searchValue[, fromIndex])  searchValue:需检索的字符串值  fromIndex:字符串中开始检索的位置
lastIndexOf() 与indexOf()同理,只是从末尾开始向前检索

var str = 'wow, hello world!';
var a5 = ['tt', 'uu', 'yy', 'uu', 'ii'];

str.indexOf('wo', 3);		// 11
a5.indexOf('uu');			// 2
a5.indexOf('uu', 2);		// 3
str.lastIndexOf('o');		// 7

3. search()

search() 方法返回指定子字符串值在字符串中首次出现的位置,未找到则返回-1。与indexOf的区别是search()的参数必须是正则表达式(但会忽略标志g,不执行全局匹配),而indexOf()的参数必须是字符串。另外,search()没有第二个参数。indexOf()是比search()更加底层的方法,功能弱但资源消耗小。

var str = "Visit W3School!";
str.search(/W3School/);		// 6


4. match()

match() 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配,类似 indexOf()和lastIndexOf(),但是它返回包含匹配项的数组(字符串与数组之间的桥梁之一,剩下两个是join()和split()),而不是字符串的位置,没有找到则返回null。
 string.match(searchvalue) or string.match(regexp) 可使用正则进行匹配

var str = "Hello world!";
str.match("world");				// ["world"]
str.match("Lorld");				// null
var str2 = "1 plus 2 equal 3";
str2.match(/\b\d+\b/g);<span style="white-space:pre">			</span>// ["1", "2", "3"]


5. test()

test() 方法用于检测一个字符串是否匹配某个模式(与 search 和 match 不同的是,在 test 方法中正则在前,字符串作参数)

var str = "Visit W3School";
(/W3School/).test(str);				// ture

6. replace()

replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。
string.replace(regexp/string,replacement) replacement可以是字符串,也可以是函数

var str = "Welcome to wow!";
str.replace("W", "w");		// "welcome to wow!"
str.replace(/ /g, "");		// "Welcometowow!"
str.replace(/w/ig, "*");	// "*elcome to *o*!" (对大小写不敏感的全局替换)

var name = "aaa bbb ccc";
var uw = name.replace(/\b\w+\b/g, function (word, position, string) {	// replace()不改变字符串本身,因此需要用变量取得返回值。回调函数的参数分别是:当前匹配上的字符串,匹配位置,整个字符串
	return word.substring(0,1).toUpperCase() + word.substring(1);
});
console.log(name);			// "aaa bbb ccc" (原始字符串是不变的)
console.log(uw);			// "Aaa Bbb Ccc"


7. substring()

substring() 方法用于提取字符串中介于两个指定下标之间的字符。与slice()不同的是substring()不接受负参数,并且只能用于字符串

var str = "Hello world!";
str.substring(3, 7);	// "lo w"
str.substring(3);		// "lo world!"


8. slice()

slice() 方法可提取字符串(或数组)的某个部分,并将其返回。slice()比substring()灵活,它允许使用负数作为参数,而且可以截取数组
str.slice(start,end)截取的字符串(或数组)包含start,而不含end

var str = "I love Xiaoqiting";
str.slice(2);			// "love Xiaoqiting"
str.slice(2, 6);		// "love"
str.slice(-4, -1);		// "tin"

var arrr = ['star', 1234, true];
arrr.slice(1, 2);		// [1234]


9. substr()

substr()方法也是用于截取字符串,两个参数start,length

10.split()

用于将字符串按一定规则分割,返回一个数组,参数separator是分割的规则,可以是正则,第二个参数limit是现在返回多少个符合规则的元素

"123 456".split(' ')   //['123','456'];
'123 456'.split(' ', 1)  //['123'];
'aaa1ccc'.split(/[0-9]/) //['aaa','ccc'];


11.toString()

toString() 用于把Array、Boolean、Date、Error、Function、Number等对象转换为字符串
toLocaleString() 把数组转换为本地字符串

["aaa", "bbb", "ccc", "ddd"].toString();	// "aaa,bbb,ccc,ddd"
(34).toString(2);					// "100010"(参数指定的基数或底数,底数范围为2-36)
(new Date()).toString();			// "Wed Apr 16 2014 23:23:07 GMT+0800 (中国标准时间)" 
(new Date()).toLocaleString();		// "2014年5月28日 下午3:41:34"



转换成字符串String()

String(123);

String(null);

字符转义

"ccc\"aaa"

'ccc\\123'



正则表达式

字符串种常用的方法

RegObject.test(rule)

用于测试正则表达式与指定字符串是否匹配


锚点--匹配一个位置

 ^:起始位置 (/^http:/)

$:结尾位置(/\.jpg$/)

\b:单词边界(/\bis\b/)

字符类--匹配一类字符中的一个

[abc]:a或b或c

[0-9]:一个数字  

[a-z]:一个字母

.      :任一字符(除换行符)

eg.  /[0-9]/.test('123') , /[^0-9]/.test('abc'),/[^0-9]/.test('abc'), /./.test('aa')

元字符--具有特殊意义的字符

^,$.,\b

\d:[0-9]

\D:[^0-9]

\s:空白符

\S:[^\s]

\w:[A-Za-z0-9]

\W:[^\w]

量词--出现的次数

{m,n} : m到n次

* :{0,}

?:{0,1}

+ :{1,}

转义符--需要匹配的字符是元字符

eg. /^http:\/\//.test('http://'),  /@im7\.com/.test('miaomiao@im7.com')


多选分支

eg. /thi(c|n)k/--可匹配|左或右的字符think或thick

/\.(png|jpg|gif)$/图片匹配


捕获--保持匹配到的字符串,之后再用

   () : 捕获   /(.+)@(163|126|188)\.com$/

   (?:):不捕获 /(.+)@(?:163|126|188)\.com$/

 str.match(regexp)--获取匹配的字符串

var url = 'http://blog.163.com/album?id=1#comment';
var reg = /(https?:)\/\/([^\/]+)(\/[^\?]*)?(\?[^#]*)?(#,*)?/;
var arr = url.match(reg);
var protocol = arr[1];
var host = arr[2];
var pathname = arr[3];
var search = arr[4];
var hash = arr[5];

RegexpObj.exec(str)

e.g.

var reg = /(.)(\d+)/g;
	var money = 'Tom $11, Terry ¥100, Jack $22';
	var result;
	while(result = reg.exec(money)){
		console.log(result);
		console.log(reg.lastIndex);
	}





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值