да '^' и '$' означают конец строки, соответственно. по крайней мере, вне класса символов. в символьном классе^означает нет, поэтому он не будет соответствовать тем отрицательным символам (% и одинарной кавычки в этом случае) , если вы удалите ^
и $
, тогда регулярное выражение, вероятно, пройдет, даже если строка имеет% или «в ней , с другими персонажами
Примеры
"\"50\"%".match(/^[^"%]*$/); // equals null
"\"50\"%".match(/[^"%]*/); //equals [""]
"\"50\"%".match(/[^"%]*/g); //equals ["", "50", "", "", ""]
Также в JS это лучшие практики, чтобы создать свой регулярное выражение, используя/некоторые регулярное выражение/г вместо нового Regex («некоторые регулярных выражений»)
Вам не нужно вводить 'новый RegExp'. 'var r =/^ [^%"] * $ /; 'отлично;) –