Я должен сделать много regex вещей в JavaScript, но имею некоторые проблемы с синтаксисом, и я, может казаться, не нахожу категорический ресурс на этом.. по некоторым причинам, когда я делаю:
var tesst = "afskfsd33j"
var test = tesst.match(/a(.*)j/);
alert (test)
это показывает
"afskfsd33j, fskfsd33"
Я не уверен, почему его предоставление этого вывода оригинала и совпавшей строки, я задаюсь вопросом, как я могу добраться, это, чтобы просто дать соответствие (по существу извлекающий первую часть хотят от исходной строки),
Спасибо за любой совет
match
возвращает массив.
По умолчанию строковое представление массива в JavaScript - это элементы массива, разделенные запятыми. В этом случае желаемый результат находится во втором элементе массива:
var tesst = "afskfsd33j"
var test = tesst.match(/a(.*)j/);
alert (test[1]);
Просто избавьтесь от круглой скобки, и это даст Вам массив с одним элементом и:
тест var = tesst.match (/a (.*) j/);
тест var = tesst.match (/a. *j/);
, Если Вы добавляете круглую скобку соответствие () функция найдет два, соответствуют для Вас один для целого выражения и один для выражения в круглой скобке
, Если Вы только хотите первое найденное соответствие, Вы могли бы хотеть использовать RegExp.exec () вместо этого.
можно использовать ниже кода:
RegExp (/a. *j/). должностное лицо ("afskfsd33j")
Я думаю, ваша проблема в том, что метод сопоставления возвращает массив. 0-й элемент в массиве - это исходная строка, элементы с 1-го по n-й соответствуют элементам в скобках с 1-го по n-й. Ваш вызов «alert ()» показывает весь массив.