我从 ajax GET 请求收到以下响应(使用 $.Ajax)
<div class="clienthoverpage_content">
<div class="school_info" id="lesson_51123">
<div class="_desc_content" id="lesson_content">
<div class="_desc_icon">
</div>
<div class="_desc_description">
<h1 class="hover_name" id="lesson_name"></h1>
<div class="fraud_warning" id="lesson_fraud_warnings"></div>
<div class="_desc_class_info" id="lesson_class_info">
<div id="lesson_class_name" class="ellipsis"></div>
<div id="lesson_type" class=""></div>
</div>
<div class="_desc_descriptors" id="lesson_descriptors">
</div>
</div>
</div>
</div>
</div>
<script type="text/javascript">
fnInitDisplay = function() {
UserYou.LoadContexts( g_rgAppContextData );
BuildHover( 'lesson_51123', {"id":"123441","class":"51112","student":"506854340"} );
$('lesson_51123').show();
}
</script>
我感兴趣的线路是
BuildHover( 'lesson_51123', {"id":"123441","class":"51112","student":"506854340"} );
我想获取id、class、student的值。 我假设最好的方法是使用正则表达式,但我找不到正确的正则表达式。
最佳答案
我不太擅长正则表达式,所以我会给你我的例子,我只使用indexOf和substring方法。 JS-FIDDLE
var str = 'UserYou.LoadContexts( g_rgAppContextData );'+
'BuildHover( "lesson_51123", {"id":"123441","class":"51112","student":"506854340"} );'+
'$("lesson_51123").show();';
var _id = '"id":"';
var _class = '","class":"';
var _student = '","student":"';
var classIndex = str.indexOf(_class);
var idIndex = str.indexOf(_id);
var studentIndex = str.indexOf(_student);
var endStr = str.indexOf('"}');
var resultID = str.substr(idIndex + _id.length, classIndex - (idIndex + _id.length) );
var resultClass = str.substr(classIndex + _class.length, studentIndex - (classIndex + _class.length));
var resultStudent = str.substr(studentIndex + _student.length, str.length-2 - (studentIndex + _student.length));
关于javascript - 在 JavaScript 中通过正则表达式查找字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33715657/