在正则表达式中我真的很糟糕,我不知道该怎么做。我想在()或[](包括方括号)内捕捉任何内容,之后什么都没有。例如,如果我键入[this is text]
我希望它返回完全。另外我有一个json充满了用户类型的术语。如果该术语不在json上,则不应该打印。这是与正则表达式有关的代码片段。正则表达式 - 在圆括号和括号内捕获任何东西
let sf_re = /(?:(,)\s+|\s+(xx)\s+)|\+|(,)/
if (document.querySelector(".images")){
document.querySelector(".images").innerHTML = ""
for(var i=0;i<item.length;i++){
if(/(\[(.*?)\]|\((.*?)\))/.test(item[i])){
let text = item[i]
let note = document.createElement("span")
note.innerHTML = String(text)
document.querySelector(".images").appendChild(note)
}
Here is an example of what happens
唯一令应显示为[cat cat cat]
。 “狗”不应该出现,因为它不在我的名单上。在regexr中,它似乎工作正常。我不知道要添加什么。
编辑:我认为我原来的文章没有足够的信息。用户使用.split()
键入输入栏,该输入栏被拆分为一个数组。我的主要目标是允许用户添加小段文字。例如,如果我的json有术语“猫”,“狗”和“猪”,并且用户键入这些术语,那么它将返回一些内容。 This is what I get using the suggestions below.注意“f”第一次如何返回箭头,但不是第二次。我不知道为什么会发生这种情况。我可能会使用“匹配”错误。我尝试这样做,我得到一个错误“无法读取的未定义的属性”:
let regex = /(\[(.*?)\]|\((.*?)\))/
if (document.querySelector(".images")){
document.querySelector(".images").innerHTML = ""
for(var i=0;i<item.length;i++){
if(item[i].match(regex)[0]){
let text = item[i]
let note = document.createElement("span")
note.innerHTML = String(text)
document.querySelector(".images").appendChild(note)
}
'另外我有一个JSON充满了用户类型的术语......然后使用JSON解析器,而不是原始正则表达式。 –