gpt4 book ai didi

javascript - 判断是否输入了字符串 "geb."

转载 作者:行者123 更新时间:2023-11-28 05:38:59 27 4
gpt4 key购买 nike

我想检查字符串是否为“geb”。或“geb”被输入到字段中。我已经接近解决方案了,但是这段时间给我带来了麻烦:

<input type="text" name="Name" size="25"
title="Hier nur Vor- und Nachnamen in dieser Reihenfolge eingeben (bitte ohne Zusatz des Geburtsnamens!)."
value="Eva Gebhard geb. Zander"
onchange="if (Name.value.toUpperCase().search(' GEB[. ]') > -1) {alert('Die Angabe des Geburtsnamens ist nicht erforderlich. Bitte weglassen!'); setFocus(this); return false};" />

我创建了一个 fiddle 来测试它:https://jsfiddle.net/spade/3rv2s3sc/但无法弄清楚。

有人可以帮我一下吗?

提前致谢。

最佳答案

您在处理程序中使用了 undefined variable Name。您需要使用 this 进行测试,它是处理程序上下文中的输入元素。另外,除非您在其他地方定义了它,否则 setFocus() 不是一个函数。使用 this.focus() 来重置焦点(尽管我假设您只是出于测试原因才这样做)。

您不需要使用 /.../ 来指示 Javscript 搜索功能的正则表达式。 JS search 会自动将字符串转换为正则表达式。但是,Barmar 使用 match 而不是 search 的观点对于您的情况来说是一个很好的选择,因为您不关心字符串中匹配发生位置的索引,仅无论该字符串是否在任何地方出现。

关于测试中前面的空格的注释也很好,因为您的问题询问了“geb”和“geb.”。假设您正确地表达了您的问题,那么您的条件测试中不应该有前导空格。

为了说明为什么您的代码不起作用,这里有一个有效的修改,尽可能保持相同,以便您可以理解您的错误

<input type="text" name="Name" size="25" title="Hier nur Vor- und Nachnamen in dieser Reihenfolge eingeben (bitte ohne Zusatz des Geburtsnamens!)." value="Eva Gebhard geb. Zander" 
onchange="if (this.value.toUpperCase().search(' GEB[. ]') > -1) {alert('Die Angabe des Geburtsnamens ist nicht erforderlich. Bitte weglassen!'); this.focus(); return false};" />

这是另一个示例,显示了其他用户的一些评论:

function myFunction(el) {
value = el.value;
if (value.match(/geb[. ]/i)) {
alert('Die Angabe des Geburtsnamens ist nicht erforderlich. Bitte weglassen!');
el.focus();
return false;
}
}
<input type="text" name="Name" size="25" title="Hier nur Vor- und Nachnamen in dieser Reihenfolge eingeben (bitte ohne Zusatz des Geburtsnamens!)." value="Eva Gebhard geb. Zander" onchange="myFunction(this)"/>

关于javascript - 判断是否输入了字符串 "geb.",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39089405/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com