请帮我处理此任务中的正则表达式: 我有字符串:
<tag title = "DESIRED_DATA">
我想获取数据DESIRED_DATA(使用Javascript)
变体:
<tag SPACES PARAM_NAME#1 = PARAM_VALUE#1 title = "DESIRED_DATA" PARAM_NAME#N = PARAM_VALUES#N>
<tag SPACES title='DESIRED_DATA' SPACES>
等
我的字符串的组成部分:
开始:<tag
结束:>
“”或“
中的标题值答案 0 :(得分:-1)
编辑2:考虑到正则表达式不是处理HTML的最佳工具。如果您有权访问DOM元素,则可以轻松访问其属性using jQuery或raw DOM。
回答你的问题:
如果您将'<tag title = "DESIRED_DATA">'
作为字符串,则可以使用:
var string = '<tag title = "DESIRED_DATA">';
var matches = string.match(/title\s*=\s*"(\w+)"/);
var data = matches[1];
在常规表达中阅读documentation以便更好地理解。
编辑: 如果单个/双引号的使用在字符串中是一致的,嵌套字符串不会比您描述的更深,您可以使用:
var string = '<tag param = \'title = "xxx"\' title = \'correct title\' param2 = \'trash\'>';
var lastSingleQuote = string.lastIndexOf('\'');
var lastDoubleQuote = string.lastIndexOf('"');
var pattern = lastSingleQuote > lastDoubleQuote
? /title\s*=\s*'([^']*)'/
: /title\s*=\s*"([^"]*)"/
var matches = string.match(pattern);
var data = matches[1];
我还考虑了@ Makyen的建议。