The dash needs to be the first/last character in the character class in order to be used literally:
^[-0-9a-zA-Z /_?:.,s]+$
^[0-9a-zA-Z /_?:.,s-]+$
You could also escape it, if not the first/last:
^[0-9a-zA-Z- /_?:.,s]+$
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…