Я не очень хорошо использую регулярное выражение и трачу на два дня, чтобы исправить эту проблему и, конечно, искать решения в stackoverflow, но ничего не решить мою проблему. и вот в чем проблема.javascript regex для соответствия строке с номером и без него
переменная оценка будет увеличена на 1 с использованием этого кода
@inc score
мы фиксируем переменную, используя это регулярное выражение
inc: /^@inc (.*)$/
и это аргумент
if (match.inc) {
section = this.addAttribute(match.inc[1] + '+=1', story, section, passage, isFirst, inputFilename, lineCount);
}
тогда я стараюсь продвинул его немного больше, чтобы это было
@inc score 15
и я изменить регулярное выражение
inc: /^@inc (.*)()(.\d*)$/
и что код отлично работает с этим изменением
if (match.inc) {
section = this.addAttribute(match.inc[1] + '+=' + match.inc[3], story, section, passage, isFirst, inputFilename, lineCount);
}
мой вопрос, как регулярное выражение должно быть? если я хочу сохранить как рабочие
@inc score <----- will increase by 1
@inc score 100000 <----- will increase by number
и, конечно, как аргумент должен быть?
вот фактический код link строки 197 и строки 299
извините за мой плохой английский, а не мой родной язык
переменная оценки просто пример, потому что пользователь может использовать любой строка, которую они хотят, например, цель @inc, деньги и т. д. вот фактический код [link] (https://github.com/textadventures/squiffy/blob/master/compiler.js) строка 197 и строка 299 – caberg
@caberg Хорошо, я изменил регулярное выражение для строки '@ inc'. И, извините, я не разработчик javascript, но я попытался вставить эту логику в ваш код (отредактированный ответ). – Jerry
УДИВИТЕЛЬНЫЙ чувак, ваши коды действительно работают Большое вам спасибо – caberg