所以我正在使用PHP和Jquery开发一个应用程序,用户可以使用关键字来存储文本,即Keyword" Br"文字"背骨抛光"。对于该特定部分,用户将能够将关键字输入文本区域,按回车键,然后文本将出现在第二文本区域中。我正在使用" $"包围文本区域内的关键字,因为文本区域内可能还有其他文本。例如:一些文本$ Keyword $更多文本继续$ Keyword2 $ etc ...我已设法提出一个RegExp:
Reg Exp:
match(/[$](.*)[a-zA-Z0-9](.*)[$]/g)
现在,当文本区域中的文本结构如下时,此工作正常:
一些文字$ Keyword $更多文字继续$ Keyword2 $
但是,如果我要将结构改为这样的结构:
$$一些文字$ Keyword $更多文字继续$ Keyword2 $更多文字继续$ Keyword3,Keyword4 $
它会拉入整行,而不仅仅是关键字。我想做的只是在中间插入文本" $"即使两个$$之间没有文本。因此,对于示例,匹配RegEx应该引入:
我是菜鸟,所以请保持温柔。
答案 0 :(得分:1)
我不允许在周围的'$'符号和关键字标识符之间使用任意字符。将正则表达式更改为
match(/\$[a-zA-Z0-9,\s]*\$/g)
它应该识别关键字。
答案 1 :(得分:1)
我会使用此正则表达式:backgroundSize:'cover'
,并使用您可以提供给/\$(\w+)\$/g
的回调函数,以便在匹配关键字时执行关键字查找。
这是一个演示。只需键入并通过.replace()
事件处理程序立即显示替换文本:
oninput
var keywords = {
Keyword: 'about nothing',
Keyword2: 'reading',
Keyword3: 'Hello',
Keyword4: 'Bye',
};
// I/O
var inp = document.getElementById('inp');
var out = document.getElementById('out');
inp.oninput = function() {
out.value = inp.value.replace(/\$(\w+)\$/g, function(match, key) {
return keywords[key] || '';
});
}
inp.oninput();
答案 2 :(得分:0)
尝试/ \ $ [a-z0-9] + \ $ / gim
document.body.innerHTML = JSON.stringify("sadasdjak $aadas$ $$$$ $bbbb$$ccccc$".match(/\$[a-z0-9]+\$/gim))