繁体   English   中英

使用正则表达式javascript匹配单词与点符号

[英]Matching a word with dot symbol using regexp javascript

我有一个搜索功能。 我想检查用户是否输入带有点(。)的文本单词/句子。

Example:
-anyword.anyword.
-.
-.anyword

一旦我检测到他/她输入了一个带有点的值,我会认为它是无效的。

我知道我可以使用regexp来做到这一点,但我仍然在学习它。 所以任何人都可以在这里给我一个亮点,将不胜感激:)。

您可以使用String#indexOf

if (theString.indexOf(".") !== -1) {
    // It has a dot
}

但是如果你真的想要使用正则表达式(这对于找到一个.来说会有点过分. ):

if (/\./.test(theString)) {
    // It has a dot
}

/\\./部分是正则表达式。 开头和结尾/是正则表达式分隔符,比如"'用于字符串。正则表达式的内容\\.我们需要在.之前使用反斜杠.因为否则,在正则表达式中, .表示“匹配任何字符”。反斜杠之前,“逃逸”,并告诉正则表达式匹配字面上点。(我们不需要,在String#indexof例如,因为indexOf不具有任何特殊处理.

最好使用String indexOf函数,然后使用Regexp ,因为Regexp在这个scnerio中将是一个过度杀伤:

如果返回-1 ,则使用MyString.indexOf('.')字符串中没有点。 如果返回值是某个整数,如0,1,2等,则在字符串中给出Dot的位置。 所以-1告诉我没有Dot

例:

if(MyString.indexOf('.') === -1)
{
   //No Dot is there, continue search
}
else
{
   //Invalid string, dot is present
}

尝试这个

indexOf()方法返回字符串中第一次出现指定值的位置。

如果要搜索的值永远不会发生,则此方法返回-1

var str = "test.test";
if(str.indexOf('.') === -1){
  alert("no dot found.");
}
else{
    alert("dot found.");
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM