从JavaScript中获取正则表达式的字符串子字符串

时间:2015-10-16 08:10:26

标签: javascript regex substring

我有一个以下形式的字符串:

data-translate='view-7631b26ea80b1b601c313b15cc4e2ab03faedf30'>Avatar data

它可以是不同的语言,但无论如何我需要得到一个字符串之间的字符串'' 也就是说,在上面的例子中,我需要得到以下字符串:

view-7631b26ea80b1b601c313b15cc4e2ab03faedf30

我可以使用string.replace(regexp,str)方法吗?

我使用以下正则表达式突出显示了所需的行:

/'\b(.*)\b'/gm

现在,使用方法string.replace我需要删除除...之外的所有内容

有什么建议吗?

3 个答案:

答案 0 :(得分:0)

使用namespace App\Http\Controllers; use Student; use StudentRecord; class StudentController extends Controller { public function getStudent($id) { return Student::find($id)->load('StudentRecord'); } } 方法。

match

答案 1 :(得分:0)

你们两边都有很好的固定锚文本,所以:

var match = /data-translate='([^']+)'/.exec(str);
var substr = match && match[1];

直播示例:



var str = "data-translate='view-7631b26ea80b1b601c313b15cc4e2ab03faedf30'>Avatar data";
var match = /data-translate='([^']+)'/.exec(str);
var substr = match && match[1];
document.body.innerHTML =
  "<pre>Got: [" + substr + "]</pre>";
&#13;
&#13;
&#13;

但是,正如我在评论中所说,using a simple regular expression to extract information from HTML is usually doomed to fail。例如,您可能不想匹配此内容:

<p>The string is data-translate='view-7631b26ea80b1b601c313b15cc4e2ab03faedf30'</p>

...但是,一个简单的正则表达式解决方案就是这样做的。要正确处理HTML,您必须使用正确的HTML解析器。

答案 2 :(得分:0)

你也可以尝试这个:

/\'([^\']+)\'/gm