Javascript 正则表达式中的多个匹配项

Javascript 正则表达式中的多个匹配项,javascript,Javascript,嗨,我正在尝试让下面的javascript代码正常工作。当我键入包含所有三个名称的行时 发烧、盗汗和夜尿症——我希望有一个警觉窗口,提醒我这三者结合起来是一个危险的信号。我做错了什么?提前谢谢你 <html> <script type="text/javascript"> function show_prompt() { var q = prompt("Please enter your name", ""); var myRegExp1 = ^ ( ?

嗨,我正在尝试让下面的javascript代码正常工作。当我键入包含所有三个名称的行时 发烧、盗汗和夜尿症——我希望有一个警觉窗口,提醒我这三者结合起来是一个危险的信号。我做错了什么?提前谢谢你

<html>
<script type="text/javascript">
function show_prompt() {
    var q = prompt("Please enter your name", "");

    var myRegExp1 = ^ ( ? = . * fever)( ? = . * night sweats)( ? = . * nocturia);
    var myRegExp2 = /fever,weight-loss,nocturia|weight-loss,fever,nocturia|nocturia,weight-loss,fever/
    var string1 = q;
    var string2 = q;
    var matchPos1 = string1.search(myRegExp1);
    var matchPos2 = string2.search(myRegExp2);
    if (matchPos1 != -1) {
        alert("bingo" + matchPos1);

    }
    if (matchPos2 != -1) {
        alert("symptoms" + matchPos2);
    }

}
</script>
<body>

<input type="button" onclick="show_prompt()" value="Show prompt box" />

</body>
</html>

函数show_prompt(){
var q=提示(“请输入您的姓名”);
var myRegExp1=^(?=.*发热)(?=.*盗汗)(?=.*夜尿症);
var myRegExp2=/发热,体重减轻,夜尿症|体重减轻,发热,夜尿症|夜尿症,体重减轻,发热/
var string1=q;
var string2=q;
var matchPos1=string1.search(myRegExp1);
var matchPos2=string2.search(myRegExp2);
如果(匹配位置1!=-1){
警报(“宾果”+matchPos1);
}
如果(匹配位置2!=-1){
警惕(“症状”+matchPos2);
}
}

首先,您有一个语法错误:

var myRegExp1 = ^ ( ? = . * fever)( ? = . * night sweats)( ? = . * nocturia);
需要

var myRegExp1 = /^ ( ? = . * fever)( ? = . * night sweats)( ? = . * nocturia)/;

如果我理解正确,我想这就是你想要的


您希望/测试什么样的输入?感谢您的帮助,更正工作顺利进行。现在,假设我使用以下句子作为输入-“患者在过去一个月里一直抱怨体重持续大幅下降。最近的hx:今天凌晨4点夜尿症,早上8点发烧。我要添加哪些标签?我尝试过使用/b和/y;两者都不起作用。用一个正则表达式解析这样的自然语言并不容易。。。另外,如果文本中有类似“但没有发烧”的内容,您会怎么做?也许可以在脚本中添加一个if子句,考虑3种情况,其中have没有出现在3个变量前面?你能告诉我一个信息来源吗?我建议输入更容易解析(即不是自然语言)。那里也有多余的空格。
function show_prompt() {
    var q = prompt("Please enter your name", "");

    var myRegExp = /(fever|weight-loss|nocturia),(fever|weight-loss|nocturia),(fever|weight-loss|nocturia)/;
    var string = q;
    var matchPos = string.search(myRegExp);
    if (matchPos != -1) {
        alert("symptoms" + matchPos);
    }
}