suman palla Ответов: 2

В JavaScript регулярное выражение или функция, чтобы слово целиком


Всем Привет,

Может ли кто-нибудь предоставить функцию JavaScript или регулярное выражение для приведенного ниже сценария?

Например: моя строка :
1) 'Моя строка abc-s'.

У меня есть массив элементов, соответствующих слову в приведенной выше строке.
var items= ["abc", "def", "ghi"];

Если приведенная выше строка содержит какой-либо элемент массива, то она должна возвращать true.
В приведенном выше массиве элементов нет 'abc', поэтому он должен возвращать false.


2)
var items= ["abc-s", "def-s", "ghi-s"];

If the above string contains any of the above item then it has to return true.


Что я уже пробовал:

Hi Everyone,

Can any one please provide a JavaScript function or Regexp for the below mentioned scenario.

For Example: my string is : 
1)  'My String abc-s'.

I have array of items to match the word in the above string.
<pre>var items= ["abc", "def", "ghi"];

Если приведенная выше строка содержит какой-либо элемент массива, то она должна возвращать true.
В приведенном выше массиве элементов нет 'abc', поэтому он должен возвращать false.


2)
var items= ["abc-s", "def-s", "ghi-s"];

If the above string contains any of the above item then it has to return true.

Nathan Minier

Итак, когда вы разрабатываете регулярное выражение, вам нужно определить уникальные характеристики подстроки, которую вы пытаетесь изолировать. В этом случае всегда ли он находится в конце строки? Это всегда только эти 3 модели захвата? Не могли бы вы сделать группу захвата и запустить ее через коммутатор? Это важные соображения.

2 Ответов

Рейтинг:
2

anup.bhunia

\b-указывает начало или конец слова, так что вы можете создать выражение, как показано ниже
(\babc\b|\bdef\b|\bhgi\b)

вы можете попробовать его в интернете по адресу Scriptular-Редактор Регулярных Выражений Javascript[^]


suman palla

Спасибо, Ануп. Пожалуйста, смотрите ниже.

У меня есть два типа времени массива.
1) var items= ["abc", "def", " ghi"];
2) ВАР предметы= ["АВС-с", "дефа-с", "Гиз-ы"];

Для первых элементов массива в строке 'моя строка ABC-ых
ВАР предметы= ["АБВ", "деф", "гхи"];
var myString = 'моя строка abc-s'
Строка содержит abc-s, поэтому она не является допустимой.
Если пользователь дает "мою строку abc", то только она должна быть действительной.


Второй Сценарий:
ВАР предметы= ["АВС-с", "дефа-с", "Гиз-ы"];
var myString = 'моя строка abc'
Строка содержит abc, поэтому она не является допустимой.
Если пользователь дает "мою строку abc-s", то только она должна быть действительной.

anup.bhunia

ваш первый сценарий должен быть покрыт решением, которое я предоставил.

Но во-вторых, это было бы сложно, так как ваши слова "abc-s" сами по себе содержат разделитель слов "-". Вы можете сформулировать свою проблему по-другому.

Рейтинг:
0

Peter Leow

Проверить это:

//var str = "My String abc";
var str = "My String abc-s";

var items= ["abc", "def", "ghi"];
//var items = ["abc-s", "def-s", "ghi-s"];

for (i=0; i < items.length; i++){
  var pattern = new RegExp("(<=\\s|\\b)"+ items[i] +"(?=[]\\b|\\s|$)");
	alert(pattern.test(str));
}
Смотрите демо-версию по адресу: JSFiddle[^]