Как я могу проверить, содержит ли моя строка точку в JavaScript? - PullRequest
9 голосов
/ 03 июля 2011

Я хочу быть в состоянии обнаружить, если строка имеет. и верните true / false на основании этого.

Например:

"myfile.doc" = TRUE

против

"mydirectory" = FALSE;

Ответы [ 6 ]

28 голосов
/ 03 июля 2011

Использование indexOf()

var str="myfile.doc";
var str2="mydirectory";

if(str.indexOf('.') !== -1)
{
  // would be true. Period found in file name
  console.log("Found . in str")
}

if(str2.indexOf('.') !== -1)
{
  // would be false. No period found in directory name. This won't run.
  console.log("Found . in str2")
}
7 голосов
/ 03 июля 2011

Просто проверьте возвращаемое значение метода indexOf: someString.indexOf('.') != -1. Нет необходимости в регулярном выражении.

1 голос
/ 21 апреля 2017

Я знаю, что это старый вопрос, но вот новый способ сделать это (не поддерживается в старых браузерах):

str.includes('.'); //returns true or false

документы

1 голос
/ 03 июля 2011

Просто чтобы добавить к тому, что уже было сказано:

Существуют разные мнения относительно того, является ли это хорошей идеей, но вы можете расширить все String экземпляры с помощью метода contains, если хотите:

String.prototype.contains = function(char) {
    return this.indexOf(char) !== -1;
};

Мне нравятся подобные вещи, когда (относительно) однозначно, что будет делать метод.

1 голос
/ 03 июля 2011

Подойдет какое-то простое регулярное выражение.

 if (myString.match(\.)) {
   doSomething();
 }
0 голосов
/ 03 июля 2011

Использовать indexOf.Возвращает целое число, показывающее положение подстроки, или -1, если она не найдена.

Например:

var test="myfile.doc"
if (test.indexOf('.')) {alert("Period found!";}
else {alert("Period not found.  Sorry!";}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...