发布网友 发布时间:2022-04-06 04:19
共2个回答
懂视网 时间:2022-04-06 08:40
在不区分大小写的情况下php比较字符串的方法:可以利用内置函数strncasecmp()来进行比较。如果函数返回0,则表示两个字符串相等。如果返回值小于0,则表示string1小于string2。
strncasecmp() 函数比较两个字符串(不区分大小写)。
(推荐教程:php图文教程)
语法:
strncasecmp(string1,string2,length)
参数:
string1 必需。规定要比较的第一个字符串。
string2 必需。规定要比较的第二个字符串。
length 必需。规定每个字符串用于比较的字符数。
返回值:
0 - 如果两个字符串相等
<0 - 如果 string1 小于 string2
>0 - 如果 string1 大于 string2
(学习视频推荐:php视频教程)
举例:
<?php echo strncasecmp("Hello","Hello",6); echo "<br>"; echo strncasecmp("Hello","hELLo",6); ?>
输出:
0 0
热心网友 时间:2022-04-06 05:48
您知道,如果人们了解了脚本专家到底是干什么的,他们将从来也不会向我们提出类似的脚本编写问题。例如,大约一周前,一个脚本专家正要准备去全家渡假。在订票时他需要向售票代理处说出他妹妹的婚后姓名。“K……”他说道,然后就卡在那了。对于他的生活而言,这位脚本专家想不起一个以字母 K 开头的单词。那么,这与您的问题又有什么关系呢?毫无关系。我们只是认为这是一个有趣的轶事。好了,但您的问题又如何呢?如您所知,我们经常告诉人们,编写脚本时请不要担心大小写问题。“总体而言,VBScript 不区分大小写,”我们这样告诉人们。“ABC 与abc 相同。”而且有例为证,构成 VBScript 的关键字、函数、语句以及其他特色内容通常均不区分大小写。例如,下面这行代码(虽然其看起来有点怪)将弹出一个消息框,这一点毫无疑问:mSGboX "This is a message box." 然而,仅仅因为您可按您所希望使用的任何方式键入 Msgbox 并不意味着 VBScript 执行的过程和测试也是不区分大小写的。例如,请尝试运行以下脚本,该脚本可比较 example@abc.com 和 example@ABC.com:str1 = "example@abc.com" str2 = "example@ABC.com" If str1 = str2 Then Wscript.Echo "The strings are equal." Else Wscript.Echo "The strings are not equal." End If 运行该脚本,之后您将收到以下消息:The strings are not equal. 为什么是这样呢?是这样,默认情况下,当 VBScript 比较字符串值时,将比较字符串中各个字符的 ASCII 值。在神奇的 ASCII 世界里,大写字母 A 和小写字母 a 具有不同的值(它们的值分别是 65 和 97)。由于 ASCII 值不同,因此 VBScript 会认为这两个字符串是不同的。那么我们如何解决此问题呢?我们将为您提供两种不同的解决方案。对于初学者,您可使用 VBScript 函数 StrComp(用于比较字符串);这将有助于确保对您的脚本进行文本比较而不是进行二进制比较。(二进制比较会将 A 和a 视为不同的字符;而文本比较则不然。)例如:str1 = "example@abc.com" str2 = "example@ABC.com" intCompare = StrComp(str1, str2, vbTextCompare) If intCompare = 0 Then Wscript.Echo "The strings are equal." Else Wscript.Echo "The strings are not equal." End If 在此脚本中,我们指定了两个字符串值(str1 和 str2),然后调用 StrComp 函数。StrComp 将得到三个参数:两个要进行比较的字符串和 VBScript 常量 vbTextCompare。随后会将字符串比较的结果存储到被称为 intCompare 的变量中。如果 intCompare 等于 0,则两个字符串相等;如果 intCompare 不等于 0,则两个字符串不同。请试一试,看看会发生什么。您应该会收到以下消息:The strings are equal. 哇。这要好办多了。下面将介绍另外一种方法,可确保比较字符串时不考虑字母大小写。在此脚本中,我们使用 UCase 函数将这两个字符串中的所有字母都转换为大写字母(换言之,两个字符串都将被转换为 EXAMPLE@ABC.COM)。由于不存在可担心的小写字母,因此此脚本将报告这两个字符串是相同的:str1 = UCase("example@abc.com") str2 = UCase("example@ABC.com") If str1 = str2 Then Wscript.Echo "The strings are equal." Else Wscript.Echo "The strings are not equal." End If 请记住,只有不考虑大小写时,才应使用其中的一种方法。如果要考虑大小写(即,如果不应将 example@ABC.com 和 example@abc.com 视为相同),则只需使用原来的常规等价测试:str1 = "example@abc.com" str2 = "example@ABC.com" If str1 = str2 Then Wscript.Echo "The strings are equal." Else Wscript.Echo "The strings are not equal." End If 如果您想知道结果如何,结果就是:我们的这位脚本专家最后终于想出了一个以字母 K 开头的单词“Kansas”。非常好!