给出一个HTML字符串:
myhtml = "<title> my title </title>"
如果存在浮动/未转义的true
或<
以及令人反感的字符本身,如何编写返回>
的函数?例子:
myhtml = "<title> my title </title>"
hasFloating(myhtml) => false
myhtml = "<title> < </title>"
hasFloating(myhtml) => true, <
myhtml = "<title> > </title>"
hasFloating(myhtml) => true, >
请记住,此字符串可能是一个巨大的HTML代码,其中包含多个元素。我还可以通过一个函数检查是否存在未转义的字符,第二个函数返回违规字符本身
编辑:为了记录,我也在该项目中使用了mechanize
宝石
答案 0 :(得分:0)
如果您只想检查是否有一个未闭合的尖括号,则不需要精美的宝石。
您可以只使用import { mapActions, mapGetters } from "vuex";
export default {
name: "AddTask",
data() {
return {
taskName : this.task ? this.task.name : null,
description : this.task ? this.task.description : null,
};
},
computed: mapGetters(['task']),
};
。
`$client = new Client();
$client->setDefaultOption('headers', array(
'Authorization' => 'Bearer '.$token,
));`
答案 1 :(得分:0)
由于编写HTML解析器本身就是一个项目,所以我不打算讨论HTML部分。
您可以通过简单地返回一个数组来返回多个值。
def hasFloating(html)
# extract a < or > character surrounded by two spaces
char = html[/(?<= )[<>](?= )/]
[!!char, char] # !!char converts char into a boolean
end
然后使用array decomposition提取值:
bool, char = hasFloating("<title> my title </title>") # bool = false, char = nil
bool, char = hasFloating("<title> < </title>") # bool = true, char = "<"
bool, char = hasFloating("<title> > </title>") # bool = true, char = ">"
答案 2 :(得分:0)
我认为我使用nokogiri
宝石找到了答案:
htmlStr = Nokogiri::HTML(html).text
# check for < or > in htmlSTR
基本上,它会解析HTML并删除所有标签:
html = <title> < </title>
# parse with nokogiri
=> " < "
然后可以使用哪个检查浮动<>。