JavaScript 正则取文本中间怎么取

{"success":true,"message":"修改成功"}

我想正则 输入success 或者 message 就可以把 true 和 修改成功 取出来。应该怎么写。。求助

帮忙写个function

慕标5832272
浏览 1782回答 2
2回答

波斯汪

你这个需求确实挺奇怪的,先假定你要查找的 key 里面没有什么特殊字符,那用正则表达式匹配的话这个函数可以这么写,实际情况要写一个非常严密的正则表达式要复杂一些:123456789101112 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 类去解析:1234567var str = '{"success":true,"message":"修改成功"}'; var res = JSON.parse( str ); alert( res.success ); // true alert( res.message ); // 修改陈功如果不一定是一个标准的 JSON,或者你的环境还不支持 JSON(比如 IE7或更早的 IE 浏览器),可以通过下面方法将其解析成一个 JS 字面量对象:1234567var str = '{"success":true,"message":"修改成功"}'; var res = (new Function("return (" + str + ")"))(); alert( res.success ); alert( res.message ); 

慕工程0101907

var c={"success":true,"message":"修改成功"};alert(c.success);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript