为了账号安全,请及时绑定邮箱和手机立即绑定

JavaScript 正则取文本中间怎么取

JavaScript 正则取文本中间怎么取

慕标5832272 2019-03-29 19:18:18
{"success":true,"message":"修改成功"}我想正则 输入success 或者 message 就可以把 true 和 修改成功 取出来。应该怎么写。。求助帮忙写个function
查看完整描述

2 回答

?
波斯汪

TA贡献1811条经验 获得超4个赞


你这个需求确实挺奇怪的,先假定你要查找的 key 里面没有什么特殊字符,那用正则表达式匹配的话这个函数可以这么写,实际情况要写一个非常严密的正则表达式要复杂一些:

1

2

3

4

5

6

7

8

9

10

11

12

 function getValue( key, str ) { 

     

     var m = str.match( new RegExp('"' + key + '"\:"?(.+?)"?[,}]') );

     

     return m ? m[ 1 ] : false;

 }

 

 var str = '{"success":true,"message":"修改成功"}';

  

 getValue( 'success', str ); // return true

  

 getValue( 'message', str ); // return 修改成功

但是按照你的例子来看,你这个字符串是一个合法的 JSON,所以如果是字符串的话,你可以直接使用 JSON 类去解析:

1

2

3

4

5

6

7

var str = '{"success":true,"message":"修改成功"}';

 

var res = JSON.parse( str );

 

alert( res.success ); // true

 

alert( res.message ); // 修改陈功

如果不一定是一个标准的 JSON,或者你的环境还不支持 JSON(比如 IE7或更早的 IE 浏览器),可以通过下面方法将其解析成一个 JS 字面量对象:

1

2

3

4

5

6

7

var str = '{"success":true,"message":"修改成功"}';

 

var res = (new Function("return (" + str + ")"))();

 

alert( res.success );

 

alert( res.message );


 


查看完整回答
反对 回复 2019-03-31
?
慕工程0101907

TA贡献1887条经验 获得超5个赞

var c={"success":true,"message":"修改成功"};
alert(c.success);

查看完整回答
反对 回复 2019-03-31
  • 2 回答
  • 0 关注
  • 1781 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信